{"id":334,"date":"2022-04-11T08:56:42","date_gmt":"2022-04-11T00:56:42","guid":{"rendered":"https:\/\/blog.lijiajia.top\/?p=334"},"modified":"2026-06-19T17:34:45","modified_gmt":"2026-06-19T09:34:45","slug":"springboot%e5%ad%a6%e4%b9%a0%e7%ac%94%e8%ae%b0%ef%bc%9aspringboot2-%e4%ba%86%e8%a7%a3%e8%87%aa%e5%8a%a8%e9%85%8d%e7%bd%ae%e5%8e%9f%e7%90%86%e4%b8%89%ef%bc%89","status":"publish","type":"post","link":"https:\/\/blog.ttwow.top\/?p=334","title":{"rendered":"SpringBoot\u5b66\u4e60\u7b14\u8bb0\uff1aSpringBoot2-\u4e86\u89e3\u81ea\u52a8\u914d\u7f6e\u539f\u7406(\u4e09\uff09"},"content":{"rendered":"<h2>1\u3001SpringBoot\u7279\u70b9<\/h2>\n<h3>1.1\u3001\u4f9d\u8d56\u7ba1\u7406<\/h3>\n<p>\u25cf \u7236\u9879\u76ee\u505a\u4f9d\u8d56\u7ba1\u7406<\/p>\n<pre><code class=\"language-xml\">\u4f9d\u8d56\u7ba1\u7406\n&lt;parent&gt;\n        &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n        &lt;artifactId&gt;spring-boot-starter-parent&lt;\/artifactId&gt;\n        &lt;version&gt;2.3.4.RELEASE&lt;\/version&gt;\n&lt;\/parent&gt;\n\n\u4ed6\u7684\u7236\u9879\u76ee\n &lt;parent&gt;\n    &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n    &lt;artifactId&gt;spring-boot-dependencies&lt;\/artifactId&gt;\n    &lt;version&gt;2.3.4.RELEASE&lt;\/version&gt;\n  &lt;\/parent&gt;\n\n\u51e0\u4e4e\u58f0\u660e\u4e86\u6240\u6709\u5f00\u53d1\u4e2d\u5e38\u7528\u7684\u4f9d\u8d56\u7684\u7248\u672c\u53f7,\u81ea\u52a8\u7248\u672c\u4ef2\u88c1\u673a\u5236\n<\/code><\/pre>\n<p>\u5f00\u53d1\u5bfc\u5165starter\u573a\u666f\u542f\u52a8\u5668<\/p>\n<pre><code class=\"language-xml\">1\u3001\u89c1\u5230\u5f88\u591a spring-boot-starter-* \uff1a *\u5c31\u67d0\u79cd\u573a\u666f\n2\u3001\u53ea\u8981\u5f15\u5165starter\uff0c\u8fd9\u4e2a\u573a\u666f\u7684\u6240\u6709\u5e38\u89c4\u9700\u8981\u7684\u4f9d\u8d56\u6211\u4eec\u90fd\u81ea\u52a8\u5f15\u5165\n3\u3001SpringBoot\u6240\u6709\u652f\u6301\u7684\u573a\u666f\nhttps:\/\/docs.spring.io\/spring-boot\/docs\/current\/reference\/html\/using-spring-boot.html#using-boot-starter\n4\u3001\u89c1\u5230\u7684  *-spring-boot-starter\uff1a \u7b2c\u4e09\u65b9\u4e3a\u6211\u4eec\u63d0\u4f9b\u7684\u7b80\u5316\u5f00\u53d1\u7684\u573a\u666f\u542f\u52a8\u5668\u3002\n5\u3001\u6240\u6709\u573a\u666f\u542f\u52a8\u5668\u6700\u5e95\u5c42\u7684\u4f9d\u8d56\n&lt;dependency&gt;\n  &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n  &lt;artifactId&gt;spring-boot-starter&lt;\/artifactId&gt;\n  &lt;version&gt;2.3.4.RELEASE&lt;\/version&gt;\n  &lt;scope&gt;compile&lt;\/scope&gt;\n&lt;\/dependency&gt;<\/code><\/pre>\n<h3>\u65e0\u9700\u5173\u6ce8\u7248\u672c\u53f7\uff0c\u81ea\u52a8\u7248\u672c\u4ef2\u88c1<\/h3>\n<p>1\u3001\u5f15\u5165\u4f9d\u8d56\u9ed8\u8ba4\u90fd\u53ef\u4ee5\u4e0d\u5199\u7248\u672c<br \/>\n2\u3001\u5f15\u5165\u975e\u7248\u672c\u4ef2\u88c1\u7684jar\uff0c\u8981\u5199\u7248\u672c\u53f7\u3002<\/p>\n<p>\u53ef\u4ee5\u4fee\u6539\u9ed8\u8ba4\u7248\u672c\u53f7<\/p>\n<pre><code class=\"language-xml\">1\u3001\u67e5\u770bspring-boot-dependencies\u91cc\u9762\u89c4\u5b9a\u5f53\u524d\u4f9d\u8d56\u7684\u7248\u672c \u7528\u7684 key\u3002\n2\u3001\u5728\u5f53\u524d\u9879\u76ee\u91cc\u9762\u91cd\u5199\u914d\u7f6e\n    &lt;properties&gt;\n        &lt;mysql.version&gt;5.1.43&lt;\/mysql.version&gt;\n    &lt;\/properties&gt;<\/code><\/pre>\n<h2>\u81ea\u52a8\u914d\u7f6e<\/h2>\n<p>\u25cf \u81ea\u52a8\u914d\u597dTomcat<br \/>\n\u25cb \u5f15\u5165Tomcat\u4f9d\u8d56\u3002<br \/>\n\u25cb \u914d\u7f6eTomcat<\/p>\n<pre><code class=\"language-xml\">&lt;dependency&gt;\n      &lt;groupId&gt;org.springframework.boot&lt;\/groupId&gt;\n      &lt;artifactId&gt;spring-boot-starter-tomcat&lt;\/artifactId&gt;\n      &lt;version&gt;2.3.4.RELEASE&lt;\/version&gt;\n      &lt;scope&gt;compile&lt;\/scope&gt;\n    &lt;\/dependency&gt;<\/code><\/pre>\n<p>\u25cf \u81ea\u52a8\u914d\u597dSpringMVC<br \/>\n\u25cb \u5f15\u5165SpringMVC\u5168\u5957\u7ec4\u4ef6<br \/>\n\u25cb \u81ea\u52a8\u914d\u597dSpringMVC\u5e38\u7528\u7ec4\u4ef6\uff08\u529f\u80fd\uff09<br \/>\n\u25cf \u81ea\u52a8\u914d\u597dWeb\u5e38\u89c1\u529f\u80fd\uff0c\u5982\uff1a\u5b57\u7b26\u7f16\u7801\u95ee\u9898<br \/>\n\u25cb SpringBoot\u5e2e\u6211\u4eec\u914d\u7f6e\u597d\u4e86\u6240\u6709web\u5f00\u53d1\u7684\u5e38\u89c1\u573a\u666f<br \/>\n\u25cf \u9ed8\u8ba4\u7684\u5305\u7ed3\u6784<br \/>\n\u25cb \u4e3b\u7a0b\u5e8f\u6240\u5728\u5305\u53ca\u5176\u4e0b\u9762\u7684\u6240\u6709\u5b50\u5305\u91cc\u9762\u7684\u7ec4\u4ef6\u90fd\u4f1a\u88ab\u9ed8\u8ba4\u626b\u63cf\u8fdb\u6765<br \/>\n\u25cb \u65e0\u9700\u4ee5\u524d\u7684\u5305\u626b\u63cf\u914d\u7f6e<br \/>\n\u25cb \u60f3\u8981\u6539\u53d8\u626b\u63cf\u8def\u5f84\uff0c@SpringBootApplication(scanBasePackages=&quot;com.atguigu&quot;)<br \/>\n\u25a0 \u6216\u8005@ComponentScan \u6307\u5b9a\u626b\u63cf\u8def\u5f84<\/p>\n<pre><code class=\"language-java\">@SpringBootApplication\n\u7b49\u540c\u4e8e\n@SpringBootConfiguration\n@EnableAutoConfiguration\n@ComponentScan(&quot;com.boot&quot;)<\/code><\/pre>\n<p>\u25cf \u5404\u79cd\u914d\u7f6e\u62e5\u6709\u9ed8\u8ba4\u503c<br \/>\n\u25cb \u9ed8\u8ba4\u914d\u7f6e\u6700\u7ec8\u90fd\u662f\u6620\u5c04\u5230\u67d0\u4e2a\u7c7b\u4e0a\uff0c\u5982\uff1aMultipartProperties<br \/>\n\u25cb \u914d\u7f6e\u6587\u4ef6\u7684\u503c\u6700\u7ec8\u4f1a\u7ed1\u5b9a\u6bcf\u4e2a\u7c7b\u4e0a\uff0c\u8fd9\u4e2a\u7c7b\u4f1a\u5728\u5bb9\u5668\u4e2d\u521b\u5efa\u5bf9\u8c61<br \/>\n\u25cf \u6309\u9700\u52a0\u8f7d\u6240\u6709\u81ea\u52a8\u914d\u7f6e\u9879<br \/>\n\u25cb \u975e\u5e38\u591a\u7684starter<br \/>\n\u25cb \u5f15\u5165\u4e86\u54ea\u4e9b\u573a\u666f\u8fd9\u4e2a\u573a\u666f\u7684\u81ea\u52a8\u914d\u7f6e\u624d\u4f1a\u5f00\u542f<br \/>\n\u25cb SpringBoot\u6240\u6709\u7684\u81ea\u52a8\u914d\u7f6e\u529f\u80fd\u90fd\u5728 spring-boot-autoconfigure \u5305\u91cc\u9762<br \/>\n\u25cb<br \/>\n\u25cf ......<\/p>\n<h2>2\u3001\u5bb9\u5668\u529f\u80fd<\/h2>\n<h3>2.1\u3001\u7ec4\u4ef6\u6dfb\u52a0<\/h3>\n<p>1\u3001@Configuration<br \/>\n\u25cf \u57fa\u672c\u4f7f\u7528<br \/>\n\u25cf Full\u6a21\u5f0f\u4e0eLite\u6a21\u5f0f<br \/>\n\u25cb \u793a\u4f8b<br \/>\n\u25cb \u6700\u4f73\u5b9e\u6218<br \/>\n\u25a0 \u914d\u7f6e \u7c7b\u7ec4\u4ef6\u4e4b\u95f4\u65e0\u4f9d\u8d56\u5173\u7cfb\u7528Lite\u6a21\u5f0f\u52a0\u901f\u5bb9\u5668\u542f\u52a8\u8fc7\u7a0b\uff0c\u51cf\u5c11\u5224\u65ad<br \/>\n\u25a0 \u914d\u7f6e\u7c7b\u7ec4\u4ef6\u4e4b\u95f4\u6709\u4f9d\u8d56\u5173\u7cfb\uff0c\u65b9\u6cd5\u4f1a\u88ab\u8c03\u7528\u5f97\u5230\u4e4b\u524d\u5355\u5b9e\u4f8b\u7ec4\u4ef6\uff0c\u7528Full\u6a21\u5f0f<\/p>\n<pre><code class=\"language-java\">#############################Configuration\u4f7f\u7528\u793a\u4f8b######################################################\n\/**\n * 1\u3001\u914d\u7f6e\u7c7b\u91cc\u9762\u4f7f\u7528@Bean\u6807\u6ce8\u5728\u65b9\u6cd5\u4e0a\u7ed9\u5bb9\u5668\u6ce8\u518c\u7ec4\u4ef6\uff0c\u9ed8\u8ba4\u4e5f\u662f\u5355\u5b9e\u4f8b\u7684\n * 2\u3001\u914d\u7f6e\u7c7b\u672c\u8eab\u4e5f\u662f\u7ec4\u4ef6\n * 3\u3001proxyBeanMethods\uff1a\u4ee3\u7406bean\u7684\u65b9\u6cd5\n *      Full(proxyBeanMethods = true)\u3001\u3010\u4fdd\u8bc1\u6bcf\u4e2a@Bean\u65b9\u6cd5\u88ab\u8c03\u7528\u591a\u5c11\u6b21\u8fd4\u56de\u7684\u7ec4\u4ef6\u90fd\u662f\u5355\u5b9e\u4f8b\u7684\u3011\n *      Lite(proxyBeanMethods = false)\u3010\u6bcf\u4e2a@Bean\u65b9\u6cd5\u88ab\u8c03\u7528\u591a\u5c11\u6b21\u8fd4\u56de\u7684\u7ec4\u4ef6\u90fd\u662f\u65b0\u521b\u5efa\u7684\u3011\n *      \u7ec4\u4ef6\u4f9d\u8d56\u5fc5\u987b\u4f7f\u7528Full\u6a21\u5f0f\u9ed8\u8ba4\u3002\u5176\u4ed6\u9ed8\u8ba4\u662f\u5426Lite\u6a21\u5f0f\n *\n *\n *\n *\/\n@Configuration(proxyBeanMethods = false) \/\/\u544a\u8bc9SpringBoot\u8fd9\u662f\u4e00\u4e2a\u914d\u7f6e\u7c7b == \u914d\u7f6e\u6587\u4ef6\npublic class MyConfig {\n\n    \/**\n     * Full:\u5916\u90e8\u65e0\u8bba\u5bf9\u914d\u7f6e\u7c7b\u4e2d\u7684\u8fd9\u4e2a\u7ec4\u4ef6\u6ce8\u518c\u65b9\u6cd5\u8c03\u7528\u591a\u5c11\u6b21\u83b7\u53d6\u7684\u90fd\u662f\u4e4b\u524d\u6ce8\u518c\u5bb9\u5668\u4e2d\u7684\u5355\u5b9e\u4f8b\u5bf9\u8c61\n     * @return\n     *\/\n    @Bean \/\/\u7ed9\u5bb9\u5668\u4e2d\u6dfb\u52a0\u7ec4\u4ef6\u3002\u4ee5\u65b9\u6cd5\u540d\u4f5c\u4e3a\u7ec4\u4ef6\u7684id\u3002\u8fd4\u56de\u7c7b\u578b\u5c31\u662f\u7ec4\u4ef6\u7c7b\u578b\u3002\u8fd4\u56de\u7684\u503c\uff0c\u5c31\u662f\u7ec4\u4ef6\u5728\u5bb9\u5668\u4e2d\u7684\u5b9e\u4f8b\n    public User user01(){\n        User zhangsan = new User(&quot;zhangsan&quot;, 18);\n        \/\/user\u7ec4\u4ef6\u4f9d\u8d56\u4e86Pet\u7ec4\u4ef6\n        zhangsan.setPet(tomcatPet());\n        return zhangsan;\n    }\n\n    @Bean(&quot;tom&quot;)\n    public Pet tomcatPet(){\n        return new Pet(&quot;tomcat&quot;);\n    }\n}\n\n################################@Configuration\u6d4b\u8bd5\u4ee3\u7801\u5982\u4e0b########################################\n@SpringBootConfiguration\n@EnableAutoConfiguration\n@ComponentScan(&quot;com.atguigu.boot&quot;)\npublic class MainApplication {\n\n    public static void main(String[] args) {\n        \/\/1\u3001\u8fd4\u56de\u6211\u4eecIOC\u5bb9\u5668\n        ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);\n\n        \/\/2\u3001\u67e5\u770b\u5bb9\u5668\u91cc\u9762\u7684\u7ec4\u4ef6\n        String[] names = run.getBeanDefinitionNames();\n        for (String name : names) {\n            System.out.println(name);\n        }\n\n        \/\/3\u3001\u4ece\u5bb9\u5668\u4e2d\u83b7\u53d6\u7ec4\u4ef6\n\n        Pet tom01 = run.getBean(&quot;tom&quot;, Pet.class);\n\n        Pet tom02 = run.getBean(&quot;tom&quot;, Pet.class);\n\n        System.out.println(&quot;\u7ec4\u4ef6\uff1a&quot;+(tom01 == tom02));\n\n        \/\/4\u3001com.atguigu.boot.config.MyConfig$$EnhancerBySpringCGLIB$$51f1e1ca@1654a892\n        MyConfig bean = run.getBean(MyConfig.class);\n        System.out.println(bean);\n\n        \/\/\u5982\u679c@Configuration(proxyBeanMethods = true)\u4ee3\u7406\u5bf9\u8c61\u8c03\u7528\u65b9\u6cd5\u3002SpringBoot\u603b\u4f1a\u68c0\u67e5\u8fd9\u4e2a\u7ec4\u4ef6\u662f\u5426\u5728\u5bb9\u5668\u4e2d\u6709\u3002\n        \/\/\u4fdd\u6301\u7ec4\u4ef6\u5355\u5b9e\u4f8b\n        User user = bean.user01();\n        User user1 = bean.user01();\n        System.out.println(user == user1);\n\n        User user01 = run.getBean(&quot;user01&quot;, User.class);\n        Pet tom = run.getBean(&quot;tom&quot;, Pet.class);\n\n        System.out.println(&quot;\u7528\u6237\u7684\u5ba0\u7269\uff1a&quot;+(user01.getPet() == tom));\n\n    }\n}<\/code><\/pre>\n<p>2\u3001@Bean\u3001@Component\u3001@Controller\u3001@Service\u3001@Repository<\/p>\n<p>3\u3001@ComponentScan\u3001@Import<\/p>\n<pre><code class=\"language-java\"> * 4\u3001@Import({User.class, DBHelper.class})\n *      \u7ed9\u5bb9\u5668\u4e2d\u81ea\u52a8\u521b\u5efa\u51fa\u8fd9\u4e24\u4e2a\u7c7b\u578b\u7684\u7ec4\u4ef6\u3001\u9ed8\u8ba4\u7ec4\u4ef6\u7684\u540d\u5b57\u5c31\u662f\u5168\u7c7b\u540d\n *\n *\n *\n *\/\n\n@Import({User.class, DBHelper.class})\n@Configuration(proxyBeanMethods = false) \/\/\u544a\u8bc9SpringBoot\u8fd9\u662f\u4e00\u4e2a\u914d\u7f6e\u7c7b == \u914d\u7f6e\u6587\u4ef6\npublic class MyConfig {\n}<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>1\u3001SpringBoot\u7279\u70b9 1.1\u3001\u4f9d\u8d56\u7ba1\u7406 \u25cf \u7236\u9879\u76ee\u505a\u4f9d\u8d56\u7ba1\u7406 \u4f9d\u8d56\u7ba1\u7406 &lt;parent&gt;  [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[125],"tags":[69],"class_list":["post-334","post","type-post","status-publish","format-standard","hentry","category-java-backend","tag-springboot"],"_links":{"self":[{"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/posts\/334","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=334"}],"version-history":[{"count":1,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/posts\/334\/revisions"}],"predecessor-version":[{"id":2002,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=\/wp\/v2\/posts\/334\/revisions\/2002"}],"wp:attachment":[{"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=334"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=334"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.ttwow.top\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=334"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}