{"id":50675,"date":"2023-10-19T13:13:53","date_gmt":"2023-11-17T21:56:06","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/"},"modified":"2024-05-04T05:01:13","modified_gmt":"2024-05-03T21:01:13","slug":"%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/","title":{"rendered":"\u6625\u5b63\u6846\u67b6"},"content":{"rendered":"<p>Spring Framework \u662f\u6700\u6d41\u884c\u7684 Java EE \u6846\u67b6\u4e4b\u4e00\u3002\u5728\u672c\u6587\u4e2d\uff0c\u6211\u4eec\u5c06\u5b66\u4e60\u4ee5\u4e0b\u5185\u5bb9\uff1a<\/p>\n<ul class=\"post-ul\">\n<li>Spring framework architecture<\/li>\n<li>Core components of Spring<\/li>\n<li>Various projects under the spring framework umbrella.<\/li>\n<\/ul>\n<hr \/>\n<p>\u6211\u67e5\u770b\u4e86Spring Framework\uff0cServlet\uff0cJSP\u548cJSF\u7684Google\u8d8b\u52bf\u56fe\u8868\u3002\u5f88\u660e\u663e\uff0cSpring\u5728\u6240\u6709\u5176\u4ed6Java EE\u6280\u672f\u4e2d\u9065\u9065\u9886\u5148\u3002<\/p>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/6564879ea4b2f92e6c73181b\/4-0.png\" alt=\"Spring Framework Popularity\" \/><\/div>\n<h2>\u4ec0\u4e48\u662fSpring\u6846\u67b6?<\/h2>\n<p>\u6625\u5929\u662fJava\u4f01\u4e1a\u7248\u6700\u53d7\u6b22\u8fce\u7684\u6846\u67b6\u4e4b\u4e00\u3002\u5168\u4e16\u754c\u7684\u5f00\u53d1\u4eba\u5458\u90fd\u4f7f\u7528Spring\u6765\u5f00\u53d1\u53ef\u9760\u548c\u9ad8\u8d28\u91cf\u7684\u5e94\u7528\u7a0b\u5e8f\u3002Spring\u6846\u67b6\u662f\u7531Rod Johnson\u8bbe\u8ba1\u7684\u3002\u4ece\u90a3\u65f6\u8d77\uff0cSpring\u5df2\u6210\u4e3aJava\u4e16\u754c\u4e2dEJB\u6a21\u578b\u7684\u66ff\u4ee3\u6280\u672f\u3002\u4f7f\u7528Spring\u6846\u67b6\u53ef\u4ee5\u521b\u5efa\u4e0d\u540c\u7c7b\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u3002<\/p>\n<h2>Spring\u6838\u5fc3\u6982\u5ff5 &#8211; \u4f9d\u8d56\u6ce8\u5165\uff08DI\uff09\u3001\u63a7\u5236\u53cd\u8f6c\uff08IoC\uff09\u3001\u9762\u5411\u5207\u9762\u7f16\u7a0b\uff08AOP\uff09<\/h2>\n<ul class=\"post-ul\">\n<li>It is impossible to understand what is Spring Framework without understanding what is Dependency Injection and Inversion of Control. Dependency Injection also called as DI, is one of the types of Inversion of Control (IoC).<\/li>\n<li>Inversion of Control &#8211; this is the principle of object-oriented programming, in which objects of the program do not depend on concrete implementations of other objects, but may have knowledge about their abstractions (interfaces) for later interaction.<\/li>\n<li>Dependency Injection &#8211; is a composition of structural design patterns, in which for each function of the application there is one, a conditionally independent object (service) that can have the need to use other objects (dependencies) known to it by interfaces. Dependencies are transferred (implemented) to the service at the time of its creation. This is a situation where we introduce an element of one class into another. In practice, DI is implemented by passing parameters to the constructor or using setters. Libraries that implement this approach are also called IoC containers.<\/li>\n<li>Aspect oriented programming &#8211; a programming paradigm that allows you to distinguish cross-through (functional) functionality in application. These functions, which span multiple application nodes, are called cross-cutting concerns and these cross-cutting notes are separated from the immediate business logic of the application. In OOP, the key unit is the class, while in AOP, the key element is the aspect. DI helps to separate application classes into separate modules, and AOP helps to separate cross-cutting concerns from the objects they affect.<\/li>\n<\/ul>\n<h2>\u6625\u5b63\u6846\u67b6\u67b6\u6784<\/h2>\n<div><img decoding=\"async\" class=\"post-images\" title=\"\" src=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/6564879ea4b2f92e6c73181b\/10-0.jpg\" alt=\"spring framework architecture\" \/><\/div>\n<h2>Spring\u6846\u67b6\u7684\u6838\u5fc3\u7ec4\u4ef6<\/h2>\n<p>Spring\u7684\u6838\u5fc3\u5bb9\u5668\u7531\u56db\u4e2a\u6a21\u5757\u7ec4\u6210\uff1aSpEL\uff08Spring\u8868\u8fbe\u5f0f\u8bed\u8a00\uff09\u3001Context\uff08\u4e0a\u4e0b\u6587\uff09\u3001Core\uff08\u6838\u5fc3\uff09\u3001Beans\uff08Bean\uff09\u3002\u5bf9\u4e8e\u8fd9\u4e9b\u5143\u7d20\u7684\u63cf\u8ff0\u5982\u4e0b\uff1a<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>SpEL\u6a21\u5757\u4e3a\u5728\u6267\u884c\u671f\u95f4\u64cd\u7eb5\u5bf9\u8c61\u63d0\u4f9b\u4e86\u5f3a\u5927\u7684\u8868\u8fbe\u5f0f\u8bed\u8a00\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u4e0a\u4e0b\u6587\u662f\u57fa\u4e8eBeans\u548cCore\u6784\u5efa\u7684\uff0c\u5141\u8bb8\u60a8\u8bbf\u95ee\u5728\u8bbe\u7f6e\u4e2d\u5b9a\u4e49\u7684\u4efb\u4f55\u5bf9\u8c61\u3002\u4e0a\u4e0b\u6587\u6a21\u5757\u7684\u5173\u952e\u5143\u7d20\u662fApplicationContext\u63a5\u53e3\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Core\u6a21\u5757\u63d0\u4f9b\u4e86\u6846\u67b6\u7684\u5173\u952e\u90e8\u5206\uff0c\u5305\u62ecIoC\u548cDI\u5c5e\u6027\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>Bean\u6a21\u5757\u8d1f\u8d23\u521b\u5efa\u548c\u7ba1\u7406Spring Beans &#8211; \u662f\u5e94\u7528\u7a0b\u5e8f\u4e0a\u4e0b\u6587\u7684\u7ed3\u6784\u5355\u5143\u3002<\/ol>\n<h2>\u6625\u5929\u7684\u6846\u67b6\u7f51<\/h2>\n<p>Spring\u6846\u67b6\u7684\u7f51\u7edc\u5c42\u5305\u62ecWeb\u3001Web-MVC\u3001Web-Socket\u3001Web-Portlet\u7b49\u7ec4\u4ef6\u3002<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Web\u6a21\u5757\u63d0\u4f9b\u4e86\u4e0b\u8f7d\u6587\u4ef6\u3001\u521b\u5efaWeb\u5e94\u7528\u7a0b\u5e8f\u3001REST Web\u670d\u52a1\u7b49\u529f\u80fd\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Web-MVC\u5305\u542b\u4e86\u7528\u4e8eWeb\u5e94\u7528\u7a0b\u5e8f\u7684Spring MVC\u5b9e\u73b0\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Web-Socket\u5728Web\u5e94\u7528\u7a0b\u5e8f\u4e2d\u63d0\u4f9b\u4e86\u5ba2\u6237\u7aef\u548c\u670d\u52a1\u5668\u4e4b\u95f4\u4f7f\u7528Web\u5957\u63a5\u5b57\u8fdb\u884c\u901a\u4fe1\u7684\u652f\u6301\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>Web-Portlet\u63d0\u4f9b\u4e86\u5728\u95e8\u6237\u73af\u5883\u4e0b\u7684MVC\u5b9e\u73b0\u3002<\/ol>\n<h2>\u6625\u5b63\u6846\u67b6\u6570\u636e\u8bbf\u95ee<\/h2>\n<p>\u6570\u636e\u8bbf\u95ee\/\u96c6\u6210\u5bb9\u5668\u5305\u62ec JDBC\u3001ORM\u3001OXM\u3001JMS \u548c\u4e8b\u52a1\u6a21\u5757\u3002<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>JDBC\u63d0\u4f9b\u4e86\u4e00\u4e2aJDBC\u7684\u62bd\u8c61\u5c42\uff0c\u5e76\u4e14\u6d88\u9664\u4e86\u5f00\u53d1\u8005\u624b\u52a8\u6ce8\u518c\u4e0e\u6570\u636e\u5e93\u8fde\u63a5\u76f8\u5173\u7684\u5355\u8c03\u4ee3\u7801\u7684\u9700\u8981\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Spring ORM\u63d0\u4f9b\u4e86\u4e0e\u6d41\u884c\u7684ORM\uff08\u5bf9\u8c61\u5173\u7cfb\u6620\u5c04\uff09\u5de5\u5177\uff0c\u5982Hibernate\u548cJDO\uff08Java\u6570\u636e\u5bf9\u8c61\uff09\uff0c\u5373JPA\uff08Java\u6301\u4e45\u5316API\uff09\u7684\u5b9e\u73b0\u7684\u96c6\u6210\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>OXM\u6a21\u5757\u8d1f\u8d23\u94fe\u63a5\u5bf9\u8c61\/ XML\uff0c\u5982XMLBeans\u3001JAXB\u7b49\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>JMS\uff08Java\u6d88\u606f\u670d\u52a1\uff09\u6a21\u5757\u8d1f\u8d23\u521b\u5efa\u3001\u53d1\u9001\u548c\u63a5\u6536\u6d88\u606f\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>Transactions\u4e3a\u5b9e\u73b0\u7279\u5b9a\u65b9\u6cd5\u548cPOJO\uff08\u666e\u901a\u7684Java\u5bf9\u8c61\uff09\u7684\u7c7b\u63d0\u4f9b\u4e8b\u52a1\u7ba1\u7406\u652f\u6301\u3002<\/ol>\n<h2>\u6742\u9879\u6a21\u5757<\/h2>\n<p>\u6625\u5929\u8fd8\u5305\u62ec\u4e86\u4e00\u4e9b\u5176\u4ed6\u91cd\u8981\u7684\u6a21\u5757\uff0c\u6bd4\u5982AOP\u3001Aspects\u3001Instrumentation\u3001Messaging\u548cTest\u6a21\u5757\u3002<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>AOP\u5b9e\u73b0\u9762\u5411\u5207\u9762\u7f16\u7a0b\uff0c\u5e76\u4e14\u53ef\u4ee5\u5229\u7528AOP\u7684\u5168\u90e8\u529f\u80fd\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Aspects\u6a21\u5757\u4e0eAspectJ\u96c6\u6210\uff0c\u4e5f\u662f\u4e00\u4e2a\u5f3a\u5927\u7684AOP\u6846\u67b6\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Instrumentation\u8d1f\u8d23\u652f\u6301\u670d\u52a1\u5668\u5e94\u7528\u4e2d\u6240\u4f7f\u7528\u7684\u7c7b\u6ce8\u5165\u548c\u7c7b\u52a0\u8f7d\u5668\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Messaging\u6a21\u5757\u63d0\u4f9bSTOMP\u652f\u6301\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u6700\u540e\uff0cTest\u6a21\u5757\u63d0\u4f9b\u4f7f\u7528TestNG\u6216JUnit\u6846\u67b6\u8fdb\u884c\u6d4b\u8bd5\u3002<\/ol>\n<h2>Spring 5\u7684\u7279\u6027<\/h2>\n<p>\u6625\u5b635\u7248\u672c\u5bf9\u6625\u5b634\u5e26\u6765\u4e86\u5de8\u5927\u7684\u66f4\u65b0\u3002\u6625\u5b635\u7684\u4e00\u4e9b\u91cd\u8981\u529f\u80fd\u6709:<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u652f\u6301Java 8\u3001Java 9\u3001Java EE 7\u3001Java EE 8\u3001Servlet 4.0\u3001Bean Validation 2.0\u548cJPA 2.2\u3002\u6211\u5f88\u9ad8\u5174\u770b\u5230Spring\u5728\u52aa\u529b\u8fce\u5934\u8d76\u4e0a\u6b63\u5728\u4f7f\u7528\u7684\u4e3b\u8981\u6280\u672f\u7684\u6700\u65b0\u7248\u672c\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u901a\u8fc7\u65b0\u6a21\u5757spring-jcl\u6539\u8fdb\u4e86\u65e5\u5fd7\u8bb0\u5f55\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u6587\u4ef6\u64cd\u4f5c\u4f7f\u7528NIO 2\u6d41\uff0c\u56e0\u6b64\u6027\u80fd\u5f97\u5230\u6539\u5584\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u652f\u6301\u5c06Reactor 3.1 Flux\u548cMono\u4ee5\u53caRxJava 1.3\u548c2.1\u4f5c\u4e3aSpring MVC\u63a7\u5236\u5668\u65b9\u6cd5\u7684\u8fd4\u56de\u503c\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u652f\u6301Kotlin\u3001Project Lombok\u3001JSON Binding API\u4f5c\u4e3aJackson\u548cGSON\u7684\u66ff\u4ee3\u65b9\u6848\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>Spring WebFlux &#8211; Spring\u6b63\u5728\u53d8\u5f97\u54cd\u5e94\u5f0f\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\n<li style=\"list-style-type: none;\">\n<ol>\u652f\u6301JUnit 5\u3002<\/ol>\n<\/li>\n<\/ol>\n<p>&nbsp;<\/p>\n<ol>\u901a\u8fc7Kotlin\u5b9e\u73b0\u51fd\u6570\u5f0f\u7f16\u7a0b\u652f\u6301\u3002<\/ol>\n<p>\u4f60\u53ef\u4ee5\u5728\u6211\u4eec\u7684GitHub\u4ee3\u7801\u5e93\u4e0a\u67e5\u770bSpring\u9879\u76ee\u3002<\/p>\n<p>\u53c2\u8003\u8d44\u6599\uff1aSpring \u5b98\u65b9\u7f51\u7ad9\uff0cSpring \u53c2\u8003\u6587\u6863<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Spring Framework \u662f\u6700\u6d41\u884c\u7684 Java EE \u6846\u67b6\u4e4b\u4e00\u3002\u5728\u672c\u6587\u4e2d\uff0c\u6211\u4eec\u5c06\u5b66\u4e60\u4ee5\u4e0b\u5185\u5bb9\uff1a Spr [&hellip;]<\/p>\n","protected":false},"author":11,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-50675","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v21.5 (Yoast SEO v21.5) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u6625\u5b63\u6846\u67b6 - Blog - Silicon Cloud<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6625\u5b63\u6846\u67b6\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u6625\u5b63\u6846\u67b6\" \/>\n<meta property=\"og:description\" content=\"Spring Framework \u662f\u6700\u6d41\u884c\u7684 Java EE \u6846\u67b6\u4e4b\u4e00\u3002\u5728\u672c\u6587\u4e2d\uff0c\u6211\u4eec\u5c06\u5b66\u4e60\u4ee5\u4e0b\u5185\u5bb9\uff1a Spr [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u6625\u5b63\u6846\u67b6\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-17T21:56:06+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-05-03T21:01:13+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/6564879ea4b2f92e6c73181b\/4-0.png\" \/>\n<meta name=\"author\" content=\"\u65b0, \u97f5\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u65b0, \u97f5\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"2 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/\",\"name\":\"\u6625\u5b63\u6846\u67b6 - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-11-17T21:56:06+00:00\",\"dateModified\":\"2024-05-03T21:01:13+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u6625\u5b63\u6846\u67b6\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/\",\"name\":\"Blog - Silicon Cloud\",\"description\":\"\",\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9\",\"name\":\"\u65b0, \u97f5\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g\",\"caption\":\"\u65b0, \u97f5\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u6625\u5b63\u6846\u67b6 - Blog - Silicon Cloud","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.silicloud.com\/zh\/blog\/\u6625\u5b63\u6846\u67b6\/","og_locale":"zh_CN","og_type":"article","og_title":"\u6625\u5b63\u6846\u67b6","og_description":"Spring Framework \u662f\u6700\u6d41\u884c\u7684 Java EE \u6846\u67b6\u4e4b\u4e00\u3002\u5728\u672c\u6587\u4e2d\uff0c\u6211\u4eec\u5c06\u5b66\u4e60\u4ee5\u4e0b\u5185\u5bb9\uff1a Spr [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u6625\u5b63\u6846\u67b6\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-11-17T21:56:06+00:00","article_modified_time":"2024-05-03T21:01:13+00:00","og_image":[{"url":"https:\/\/cdn.silicloud.com\/blog-img\/blog\/img\/6564879ea4b2f92e6c73181b\/4-0.png"}],"author":"\u65b0, \u97f5","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u65b0, \u97f5","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"2 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/","name":"\u6625\u5b63\u6846\u67b6 - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-11-17T21:56:06+00:00","dateModified":"2024-05-03T21:01:13+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u6625\u5b63\u6846\u67b6"}]},{"@type":"WebSite","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website","url":"https:\/\/www.silicloud.com\/zh\/blog\/","name":"Blog - Silicon Cloud","description":"","inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/4ba4019495123db3038fd0809e6959c9","name":"\u65b0, \u97f5","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/d484b6c6e4ae82e8a9efea989e1d2af46d9b6ef128101e63b18f559fca0ae627?s=96&d=mm&r=g","caption":"\u65b0, \u97f5"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/yunxin\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e6%98%a5%e5%ad%a3%e6%a1%86%e6%9e%b6\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50675","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/users\/11"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=50675"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50675\/revisions"}],"predecessor-version":[{"id":96267,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/50675\/revisions\/96267"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=50675"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=50675"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=50675"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}