{"id":40057,"date":"2023-06-07T09:07:12","date_gmt":"2023-11-11T07:07:15","guid":{"rendered":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/"},"modified":"2024-04-30T07:42:56","modified_gmt":"2024-04-29T23:42:56","slug":"%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82","status":"publish","type":"post","link":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/","title":{"rendered":"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c"},"content":{"rendered":"<h3>\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u503c\u3002<\/h3>\n<p>\uff08\u7528\u4e2d\u6587\uff092015\u5e7410\u670831\u65e5\u7684\u7ea6\u585e\u7c73\u8482\u516c\u56ed\u3002<\/p>\n<p>\u6211\u4ece\u521b\u5efaSpring Boot\u9879\u76ee\u7684\u6b65\u9aa4\u5f00\u59cb\uff0c\u4e00\u76f4\u6267\u884c\u5230\u83b7\u53d6\u548c\u64cd\u4f5c\u8868\u5355\u7684\u503c\u3002<\/p>\n<p>\u7531\u4e8e\u6211\u5bf9Java Web\u5e94\u7528\u7a0b\u5e8f\u7684\u5f00\u53d1\u5e76\u4e0d\u719f\u6089\uff0c\u6240\u4ee5\u53ef\u80fd\u5b58\u5728\u4e00\u4e9b\u5947\u602a\u7684\u5730\u65b9\u3002<\/p>\n<p>\u5728MacBook Air\uff08MBA\uff09\u7684\u521d\u59cb\u8bbe\u7f6e\u5907\u5fd8\u5f55Part2\u4e2d\uff0cJDK\u548cIntelliJ IDEA\u5df2\u7ecf\u5b89\u88c5\u5b8c\u6bd5\u3002<\/p>\n<hr \/>\n<h4>\u521b\u5efa\u9879\u76ee\u7684\u8349\u7a3f<\/h4>\n<ul class=\"post-ul\">Gradle \u306e\u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/ul>\n<pre class=\"post-pre\"><code>brew install gradle\r\n<\/code><\/pre>\n<ul class=\"post-ul\">IntelliJ IDEA \u3067 Gradle \u30d7\u30ed\u30b8\u30a7\u30af\u30c8\u306e\u4f5c\u6210<\/ul>\n<p>\u542f\u52a8 IntelliJ IDEA -&gt; \u65b0\u5efa\u9879\u76ee -&gt; Gradle -&gt; \u4e0b\u4e00\u6b65 -&gt;<\/p>\n<pre class=\"post-pre\"><code>GoupId: org.mygroup.webapp\r\nArtifactId: spring-boot-example1\r\nVersion: 0.0.1-SNAPSHOT\r\n<\/code><\/pre>\n<p>\u4e0b\u4e00\u4e2a -&gt; \u4e0b\u4e00\u4e2a -&gt; \u4e0b\u4e00\u4e2a -&gt; \u5b8c\u6210<\/p>\n<ul class=\"post-ul\">build.gradle \u306e\u7de8\u96c6<\/ul>\n<p>\u8bf7\u7528\u4e2d\u6587\u5bf9\u4ee5\u4e0b\u5185\u5bb9\u8fdb\u884c\u4fee\u6539\u3002\u53ea\u9700\u63d0\u4f9b\u4e00\u4e2a\u9009\u9879\uff1a<\/p>\n<p>\u7f16\u8f91\u5982\u4e0b<\/p>\n<pre class=\"post-pre\"><code><span class=\"n\">group<\/span> <span class=\"s1\">'org.mygroup.webapp'<\/span>\r\n<span class=\"n\">version<\/span> <span class=\"s1\">'0.0.1-SNAPSHOT'<\/span>\r\n\r\n<span class=\"k\">buildscript<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"n\">ext<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">springBootVersion<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'1.2.7.RELEASE'<\/span>\r\n    <span class=\"o\">}<\/span>\r\n    <span class=\"k\">repositories<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">mavenCentral<\/span><span class=\"o\">()<\/span>\r\n    <span class=\"o\">}<\/span>\r\n    <span class=\"k\">dependencies<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">classpath<\/span><span class=\"o\">(<\/span><span class=\"s2\">\"org.springframework.boot:spring-boot-gradle-plugin:${springBootVersion}\"<\/span><span class=\"o\">)<\/span>\r\n        <span class=\"n\">classpath<\/span><span class=\"o\">(<\/span><span class=\"s1\">'io.spring.gradle:dependency-management-plugin:0.5.2.RELEASE'<\/span><span class=\"o\">)<\/span>\r\n        <span class=\"n\">classpath<\/span><span class=\"o\">(<\/span><span class=\"s1\">'org.springframework:springloaded:1.2.1.RELEASE'<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n\r\n<span class=\"n\">apply<\/span> <span class=\"nl\">plugin:<\/span> <span class=\"s1\">'java'<\/span>\r\n<span class=\"n\">apply<\/span> <span class=\"nl\">plugin:<\/span> <span class=\"s1\">'idea'<\/span>\r\n<span class=\"n\">apply<\/span> <span class=\"nl\">plugin:<\/span> <span class=\"s1\">'spring-boot'<\/span>\r\n<span class=\"n\">apply<\/span> <span class=\"nl\">plugin:<\/span> <span class=\"s1\">'io.spring.dependency-management'<\/span>\r\n\r\n<span class=\"n\">jar<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"n\">baseName<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'spring-boot-example1'<\/span>\r\n    <span class=\"n\">version<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'0.0.1-SNAPSHOT'<\/span>\r\n<span class=\"o\">}<\/span>\r\n\r\n<span class=\"k\">repositories<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"n\">mavenCentral<\/span><span class=\"o\">()<\/span>\r\n<span class=\"o\">}<\/span>\r\n\r\n<span class=\"k\">dependencies<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"n\">compile<\/span><span class=\"o\">(<\/span><span class=\"s1\">'org.springframework.boot:spring-boot-starter-web'<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"n\">compile<\/span><span class=\"o\">(<\/span><span class=\"s1\">'org.springframework.boot:spring-boot-starter-thymeleaf'<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"n\">testCompile<\/span><span class=\"o\">(<\/span><span class=\"s1\">'org.springframework.boot:spring-boot-starter-test'<\/span><span class=\"o\">)<\/span>\r\n<span class=\"o\">}<\/span>\r\n\r\n<span class=\"n\">task<\/span> <span class=\"nf\">wrapper<\/span><span class=\"o\">(<\/span><span class=\"nl\">type:<\/span> <span class=\"n\">Wrapper<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n    <span class=\"n\">gradleVersion<\/span> <span class=\"o\">=<\/span> <span class=\"s1\">'2.8'<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<p>\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8\u3068\u3001build.gradle \u306e\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5<\/p>\n<p>\u7b2c\u4e00\u6b21\u4f7f\u7528\u65f6\uff0c\u6839\u636eIntelliJ IDEA\u7684\u63d0\u793a\u6d88\u606f\uff0c\u6211\u6210\u529f\u8fdb\u884c\u4e86\u4ed3\u5e93\u66f4\u65b0\u548cbuild.gradle\u7684\u5237\u65b0\uff0c\u540c\u65f6\u4e3a\u4e86\u4ee5\u540e\u968f\u65f6\u80fd\u8fdb\u884c\u8fd9\u4e9b\u64cd\u4f5c\uff0c\u6211\u4e5f\u67e5\u627e\u4e86\u76f8\u5173\u65b9\u6cd5\u3002<\/p>\n<ul class=\"post-ul\">\u30ea\u30dd\u30b8\u30c8\u30ea\u306e\u30a2\u30c3\u30d7\u30c7\u30fc\u30c8<\/ul>\n<p>\u7528 IntelliJ IDEA\u7684\u83dc\u5355\u627e\u5230 &#8220;Preferences&#8221;\uff08\u2318,\uff09<br \/>\n-&gt;\u9009\u62e9 &#8220;Build, Execution, Development&#8221;<br \/>\n-&gt; \u9009\u62e9 &#8220;Build Tools&#8221; -&gt; &#8220;Maven&#8221; -&gt; &#8220;Repositories&#8221;<br \/>\n-&gt;\u5728&#8221;URL&#8221;\u4e2d\u8f93\u5165\uff1ahttp:\/\/repo1.maven.org\/maven2<br \/>\n-&gt; \u70b9\u51fb &#8220;\u66f4\u65b0&#8221;\u6309\u94ae<\/p>\n<ul class=\"post-ul\">build.gradle \u306e\u30ea\u30d5\u30ec\u30c3\u30b7\u30e5<\/ul>\n<p>\u70b9\u51fb\u4f4d\u4e8eIntelliJ IDEA\u7a97\u53e3\u53f3\u4fa7\u4e2d\u592e\u9644\u8fd1\u7684&#8221;Gradle\u56fe\u6807&#8221;\uff08\u5982\u679c\u4e0d\u5b58\u5728\uff0c\u5219\u70b9\u51fb\u4f4d\u4e8e\u5de6\u4e0b\u89d2\u7684&#8221;\u7a97\u53e3\u56fe\u6807&#8221;\uff09\u3002<\/p>\n<p>\u70b9\u51fb &#8220;Gradle&#8221; \u56fe\u6807\uff0c\u4f1a\u6253\u5f00 Gradle \u5de5\u5177\u7a97\u53e3\u3002\u7136\u540e\u6309\u4e0b\u4f4d\u4e8e Gradle \u5de5\u5177\u7a97\u53e3\u5de6\u4e0a\u89d2\u7684\u6c34\u7eff\u8272\u5237\u65b0\u6309\u94ae\u3002<\/p>\n<ul class=\"post-ul\">\u96db\u5f62\u306e\u4f5c\u6210<\/ul>\n<p>\u8bf7\u8bbf\u95ee http:\/\/start.spring.io\/<br \/>\n\u9009\u62e9Gradle\u9879\u76ee\uff0cSpring Boot 1.2.7\u7248\u672c<br \/>\n\u5728\u8868\u683c\u4e2d\u8f93\u5165\u4ee5\u4e0b\u5185\u5bb9<\/p>\n<pre class=\"post-pre\"><code>Group: org.mygroup.webapp \r\nArtifact: spring-boot-example1\r\n<\/code><\/pre>\n<p>\u70b9\u51fb\u201c\u751f\u6210\u9879\u76ee\u201d\u6309\u94ae<br \/>\n\u89e3\u538b\u4e0b\u8f7d\u7684 zip \u6587\u4ef6<br \/>\n\u5c06\u5176\u4e2d\u7684 src \u6587\u4ef6\u5939\u79fb\u52a8\u5230\u4f7f\u7528 IntelliJ IDEA \u521b\u5efa\u7684\u9879\u76ee\u6839\u76ee\u5f55\u4e0b<\/p>\n<p>\u9879\u76ee\u7684\u76ee\u5f55\u7ed3\u6784<\/p>\n<pre class=\"post-pre\"><code>spring-boot-example1\r\n\u251c\u2500\u2500 build.gradle\r\n\u251c\u2500\u2500 gradle\r\n\u2502\u00a0\u00a0 \u2514\u2500\u2500 wrapper\r\n\u2502\u00a0\u00a0     \u251c\u2500\u2500 gradle-wrapper.jar\r\n\u2502\u00a0\u00a0     \u2514\u2500\u2500 gradle-wrapper.properties\r\n\u251c\u2500\u2500 gradlew\r\n\u251c\u2500\u2500 gradlew.bat\r\n\u251c\u2500\u2500 settings.gradle\r\n\u251c\u2500\u2500 spring-boot-example1.iml\r\n\u2514\u2500\u2500 src\r\n    \u251c\u2500\u2500 main\r\n    \u2502\u00a0\u00a0 \u251c\u2500\u2500 java\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0 \u2514\u2500\u2500 org\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0     \u2514\u2500\u2500 mygroup\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0         \u2514\u2500\u2500 webapp\r\n    \u2502\u00a0\u00a0 \u2502\u00a0\u00a0             \u2514\u2500\u2500 SpringBootExample1Application.java\r\n    \u2502\u00a0\u00a0 \u2514\u2500\u2500 resources\r\n    \u2502\u00a0\u00a0     \u2514\u2500\u2500 application.properties\r\n    \u2514\u2500\u2500 test\r\n        \u2514\u2500\u2500 java\r\n            \u2514\u2500\u2500 org\r\n                \u2514\u2500\u2500 mygroup\r\n                    \u2514\u2500\u2500 webapp\r\n                        \u2514\u2500\u2500 SpringBootExample1ApplicationTests.java\r\n<\/code><\/pre>\n<hr \/>\n<h4>\u521b\u5efaHTML\u6587\u4ef6<\/h4>\n<p>\u53c2\u8003 Handling Form Submission\uff0c \u521b\u5efa\u4e00\u4e2a\u80fd\u591f\u63a5\u6536\u5e76\u663e\u793a\u6765\u81ea\u8868\u5355\u7684\u503c\u7684\u7f51\u7ad9\u3002<\/p>\n<p>index.html<\/p>\n<p>\u5728 `src\/main\/resources\/templates` \u76ee\u5f55\u4e0b\u521b\u5efa\u4e00\u4e2a\u6587\u4ef6\u5939\uff1a<br \/>\n&#8211; \u9996\u5148\u5728\u8be5\u6587\u4ef6\u5939\u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a `index` \u7684 HTML \u6587\u4ef6\u3002<br \/>\n\uff08`index.html` \u7684\u4f5c\u7528\u662f\u5c06\u8868\u5355\u4e2d\u8f93\u5165\u7684\u503c\u8fdb\u884c\u63d0\u4ea4\uff09<\/p>\n<pre class=\"post-pre\"><code><span class=\"cp\">&lt;!DOCTYPE HTML&gt;<\/span>\r\n<span class=\"nt\">&lt;html<\/span> <span class=\"na\">xmlns:th=<\/span><span class=\"s\">\"http:\/\/www.thymeleaf.org\"<\/span><span class=\"nt\">&gt;<\/span>\r\n<span class=\"nt\">&lt;head&gt;<\/span>\r\n    <span class=\"nt\">&lt;title&gt;<\/span>Index<span class=\"nt\">&lt;\/title&gt;<\/span>\r\n    <span class=\"nt\">&lt;meta<\/span> <span class=\"na\">http-equiv=<\/span><span class=\"s\">\"Content-Type\"<\/span> <span class=\"na\">content=<\/span><span class=\"s\">\"text\/html; charset=UTF-8\"<\/span> <span class=\"nt\">\/&gt;<\/span>\r\n<span class=\"nt\">&lt;\/head&gt;<\/span>\r\n<span class=\"nt\">&lt;body&gt;<\/span>\r\n<span class=\"nt\">&lt;h1&gt;<\/span>Form<span class=\"nt\">&lt;\/h1&gt;<\/span>\r\n<span class=\"nt\">&lt;form<\/span> <span class=\"na\">action=<\/span><span class=\"s\">\"#\"<\/span> <span class=\"na\">th:action=<\/span><span class=\"s\">\"@{\/result}\"<\/span> <span class=\"na\">th:object=<\/span><span class=\"s\">\"${indexForm}\"<\/span> <span class=\"na\">method=<\/span><span class=\"s\">\"post\"<\/span><span class=\"nt\">&gt;<\/span>\r\n    <span class=\"nt\">&lt;p&gt;<\/span>Id: <span class=\"nt\">&lt;input<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"text\"<\/span> <span class=\"na\">th:field=<\/span><span class=\"s\">\"*{id}\"<\/span> <span class=\"nt\">\/&gt;&lt;\/p&gt;<\/span>\r\n    <span class=\"nt\">&lt;p&gt;<\/span>Message: <span class=\"nt\">&lt;input<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"text\"<\/span> <span class=\"na\">th:field=<\/span><span class=\"s\">\"*{content}\"<\/span> <span class=\"nt\">\/&gt;&lt;\/p&gt;<\/span>\r\n    <span class=\"nt\">&lt;p&gt;&lt;input<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"submit\"<\/span> <span class=\"na\">value=<\/span><span class=\"s\">\"Submit\"<\/span> <span class=\"nt\">\/&gt;<\/span> <span class=\"nt\">&lt;input<\/span> <span class=\"na\">type=<\/span><span class=\"s\">\"reset\"<\/span> <span class=\"na\">value=<\/span><span class=\"s\">\"Reset\"<\/span> <span class=\"nt\">\/&gt;&lt;\/p&gt;<\/span>\r\n<span class=\"nt\">&lt;\/form&gt;<\/span>\r\n<span class=\"nt\">&lt;\/body&gt;<\/span>\r\n<span class=\"nt\">&lt;\/html&gt;<\/span>\r\n<\/code><\/pre>\n<p>th:action=&#8221;@{\/result}&#8221; \u8868\u793a\u8868\u5355\u7684\u64cd\u4f5c\u4e3a\u201c\/result\u201d<br \/>\nth:object=&#8221;${indexForm}&#8221; \u5c06\u8868\u5355\u7684\u5185\u5bb9\u90fd\u5b58\u50a8\u5728indexForm\u5bf9\u8c61\u4e2d<br \/>\nth:field=&#8221;*{id}&#8221; \u8868\u793aindexForm\u5bf9\u8c61\u7684id\u5b57\u6bb5<br \/>\nth:field=&#8221;*{content}&#8221; \u8868\u793aindexForm\u5bf9\u8c61\u7684content\u5b57\u6bb5<\/p>\n<p>\u5f53\u70b9\u51fb\u63d0\u4ea4\u6309\u94ae\u65f6\uff0c\u5c06\u8c03\u7528\u6620\u5c04\u5230&#8221;\/result&#8221;\u7684\u65b9\u6cd5\u3002\u8be5\u65b9\u6cd5\u53ef\u4ee5\u63a5\u53d7indexForm\u5bf9\u8c61\u4f5c\u4e3a\u53c2\u6570\u3002<\/p>\n<p>result.html<\/p>\n<p>\u63a5\u4e0b\u6765\uff0c\u5728\/src\/main\/resources\/templates\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a&#8221;result&#8221;\u7684HTML\u6587\u4ef6\uff08result.html\u7684\u4f5c\u7528\u662f\u663e\u793a\u8868\u5355\u4e2d\u8f93\u5165\u7684\u503c\uff09\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"cp\">&lt;!DOCTYPE HTML&gt;<\/span>\r\n<span class=\"nt\">&lt;html<\/span> <span class=\"na\">xmlns:th=<\/span><span class=\"s\">\"http:\/\/www.thymeleaf.org\"<\/span><span class=\"nt\">&gt;<\/span>\r\n<span class=\"nt\">&lt;head&gt;<\/span>\r\n    <span class=\"nt\">&lt;title&gt;<\/span>Result<span class=\"nt\">&lt;\/title&gt;<\/span>\r\n    <span class=\"nt\">&lt;meta<\/span> <span class=\"na\">http-equiv=<\/span><span class=\"s\">\"Content-Type\"<\/span> <span class=\"na\">content=<\/span><span class=\"s\">\"text\/html; charset=UTF-8\"<\/span> <span class=\"nt\">\/&gt;<\/span>\r\n<span class=\"nt\">&lt;\/head&gt;<\/span>\r\n<span class=\"nt\">&lt;body&gt;<\/span>\r\n<span class=\"nt\">&lt;h1&gt;<\/span>Result<span class=\"nt\">&lt;\/h1&gt;<\/span>\r\n   <span class=\"nt\">&lt;p<\/span> <span class=\"na\">th:text=<\/span><span class=\"s\">\"'id: ' + ${indexForm.id}\"<\/span> <span class=\"nt\">\/&gt;<\/span>\r\n   <span class=\"nt\">&lt;p<\/span> <span class=\"na\">th:text=<\/span><span class=\"s\">\"'content: ' + ${indexForm.content}\"<\/span> <span class=\"nt\">\/&gt;<\/span>\r\n   <span class=\"nt\">&lt;a<\/span> <span class=\"na\">href=<\/span><span class=\"s\">\"\/\"<\/span><span class=\"nt\">&gt;<\/span>Submit another message<span class=\"nt\">&lt;\/a&gt;<\/span>\r\n<span class=\"nt\">&lt;\/body&gt;<\/span>\r\n<span class=\"nt\">&lt;\/html&gt;<\/span>\r\n<\/code><\/pre>\n<p>\u4f7f\u7528${indexForm.id}\u6765\u83b7\u53d6\u4f20\u9012\u6765\u7684indexForm\u5bf9\u8c61\u7684id\u5b57\u6bb5<br \/>\n\u4f7f\u7528${indexForm.content}\u6765\u83b7\u53d6\u4f20\u9012\u6765\u7684indexForm\u5bf9\u8c61\u7684content\u5b57\u6bb5<br \/>\n\u5f53\u70b9\u51fbSubmit another message\u94fe\u63a5\u65f6\uff0c\u4f1a\u8c03\u7528\u6620\u5c04\u5230&#8221;\/&#8221;\u7684\u65b9\u6cd5<\/p>\n<hr \/>\n<h4>\u521b\u5efa\u4e00\u4e2aJava\u7c7b<\/h4>\n<p>SpringBootExample1Application.java<\/p>\n<p>\u5728org.mygroup.webapp\u5305\u4e2d\uff0c\u4ee5\u4e0b\u7c7b\u5df2\u7ecf\u81ea\u52a8\u751f\u6210\u3002<br \/>\n\u8fd9\u4e2a\u7c7b\u7279\u522b\u6ca1\u6709\u9700\u8981\u66f4\u6539\u7684\u5730\u65b9\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">org.mygroup.webapp<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.boot.SpringApplication<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.boot.autoconfigure.SpringBootApplication<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"nd\">@SpringBootApplication<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">SpringBootExample1Application<\/span> <span class=\"o\">{<\/span>\r\n\r\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"nc\">SpringApplication<\/span><span class=\"o\">.<\/span><span class=\"na\">run<\/span><span class=\"o\">(<\/span><span class=\"nc\">SpringBootExample1Application<\/span><span class=\"o\">.<\/span><span class=\"na\">class<\/span><span class=\"o\">,<\/span> <span class=\"n\">args<\/span><span class=\"o\">);<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<p>IndexFormController.java<\/p>\n<p>\u5728\u76f8\u540c\u7684org.mygroup.webapp\u5305\u4e2d\u521b\u5efa\u4e00\u4e2a\u540d\u4e3aIndexFormController\u7684Java\u7c7b\u3002<\/p>\n<p>\u65e0\u8bba\u662f&#8221;\/&#8221;\u8fd8\u662f&#8221;\/index&#8221;\uff0c\u90fd\u4f1a\u663e\u793aindex.html\uff0c\u56e0\u6b64\u6211\u4eec\u5c06\u4e24\u8005\u90fd\u8fd4\u56de&#8221;index&#8221;\u3002<\/p>\n<p>\u5bf9\u4e8e\u5c06\u591a\u4e2aURL\u6620\u5c04\u5230\u4e00\u4e2aHTML\u6587\u4ef6\u4e0a\uff0c\u6211\u89c9\u5f97\u53ef\u80fd\u6709\u66f4\u597d\u7684\u5199\u6cd5\u3002<\/p>\n<p>(2015.11.16 \u66f4\u65b0)<br \/>\n\u6839\u636e\u591a\u4e2a Spring @RequestMapping \u6ce8\u89e3\u7684\u8bf4\u6cd5\uff0c<br \/>\n\u5982\u679c\u4f7f\u7528 @RequestMapping(value={&#8220;\/&#8221;, &#8220;\/index&#8221;}) \u5c31\u53ef\u4ee5\u4e86\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">org.mygroup.webapp<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.mygroup.webapp.model.IndexForm<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.stereotype.Controller<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.ui.Model<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.web.bind.annotation.ModelAttribute<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.web.bind.annotation.RequestMapping<\/span><span class=\"o\">;<\/span>\r\n<span class=\"kn\">import<\/span> <span class=\"nn\">org.springframework.web.bind.annotation.RequestMethod<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"nd\">@Controller<\/span>\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">IndexFormController<\/span> <span class=\"o\">{<\/span>\r\n\r\n    <span class=\"nd\">@RequestMapping<\/span><span class=\"o\">(<\/span><span class=\"n\">value<\/span><span class=\"o\">=<\/span><span class=\"s\">\"\/\"<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">index1<\/span><span class=\"o\">(<\/span><span class=\"nc\">Model<\/span> <span class=\"n\">model<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">model<\/span><span class=\"o\">.<\/span><span class=\"na\">addAttribute<\/span><span class=\"o\">(<\/span><span class=\"s\">\"indexForm\"<\/span><span class=\"o\">,<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">IndexForm<\/span><span class=\"o\">());<\/span>\r\n        <span class=\"k\">return<\/span> <span class=\"s\">\"index\"<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"o\">}<\/span>\r\n    <span class=\"nd\">@RequestMapping<\/span><span class=\"o\">(<\/span><span class=\"n\">value<\/span><span class=\"o\">=<\/span><span class=\"s\">\"\/index\"<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">index2<\/span><span class=\"o\">(<\/span><span class=\"nc\">Model<\/span> <span class=\"n\">model<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"n\">model<\/span><span class=\"o\">.<\/span><span class=\"na\">addAttribute<\/span><span class=\"o\">(<\/span><span class=\"s\">\"indexForm\"<\/span><span class=\"o\">,<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">IndexForm<\/span><span class=\"o\">());<\/span>\r\n        <span class=\"k\">return<\/span> <span class=\"s\">\"index\"<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"o\">}<\/span>\r\n\r\n    <span class=\"nd\">@RequestMapping<\/span><span class=\"o\">(<\/span><span class=\"n\">value<\/span><span class=\"o\">=<\/span><span class=\"s\">\"\/result\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">method<\/span><span class=\"o\">=<\/span><span class=\"nc\">RequestMethod<\/span><span class=\"o\">.<\/span><span class=\"na\">POST<\/span><span class=\"o\">)<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">indexFormSubmit<\/span><span class=\"o\">(<\/span><span class=\"nd\">@ModelAttribute<\/span> <span class=\"nc\">IndexForm<\/span> <span class=\"n\">indexForm<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Model<\/span> <span class=\"n\">model<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">indexForm<\/span><span class=\"o\">.<\/span><span class=\"na\">getId<\/span><span class=\"o\">()<\/span> <span class=\"o\">==<\/span> <span class=\"mi\">1<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n            <span class=\"n\">indexForm<\/span><span class=\"o\">.<\/span><span class=\"na\">setContent<\/span><span class=\"o\">(<\/span><span class=\"s\">\"\u304a\u524d\u304c\u30ca\u30f3\u30d0\u30fc\u30ef\u30f3\u3060\uff01\"<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"o\">}<\/span>\r\n        <span class=\"n\">model<\/span><span class=\"o\">.<\/span><span class=\"na\">addAttribute<\/span><span class=\"o\">(<\/span><span class=\"s\">\"indexForm\"<\/span><span class=\"o\">,<\/span> <span class=\"n\">indexForm<\/span><span class=\"o\">);<\/span>\r\n        <span class=\"k\">return<\/span> <span class=\"s\">\"result\"<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<p>\u4ee5 model.addAttribute(&#8220;indexForm&#8221;, new IndexForm()) \u7684\u5f62\u5f0f\uff0c\u5728\u6253\u5f00 index.html \u9875\u9762\u65f6\uff0c\u5982\u679c\u4e0d\u5c06\u4e00\u4e2a\u7a7a\u5b9e\u4f8b\u8bbe\u7f6e\u4e3a\u8868\u5355\uff0c\u5219\u4f1a\u51fa\u73b0\u9519\u8bef\u3002<\/p>\n<pre class=\"post-pre\"><code>Error during execution of processor 'org.thymeleaf.spring4.processor.attr.SpringInputGeneralFieldAttrProcessor' (index:10)\r\n<\/code><\/pre>\n<p>@RequestMapping(value=&#8221;\/result&#8221;, method=RequestMethod.POST)\uff0c\u5f53\u8bf7\u6c42\u65b9\u6cd5\u4e3aPOST\u4e14\u8def\u5f84\u4e3a&#8221;\/result&#8221;\u65f6\uff0c\u6620\u5c04\u5230\u540d\u4e3aindexFormSubmit\u7684\u65b9\u6cd5\u3002<\/p>\n<p>\u4f7f\u7528@ModelAttribute IndexForm indexForm\u6765\u63d0\u4ea4\u8868\u5355\uff0c\u7136\u540e\u5c06\u8868\u5355\u7684\u503c\u4f5c\u4e3aindexForm\u5b9e\u4f8b\u6765\u521b\u5efaIndexForm\u5bf9\u8c61\u3002<\/p>\n<p>IndexForm.java<\/p>\n<p>\u521b\u5efa\u4e00\u4e2a\u540d\u4e3a org.mygroup.webapp.model \u7684\u5305\uff0c\u5728\u5176\u4e2d\u521b\u5efa\u540d\u4e3a IndexForm \u7684 Java \u7c7b\u3002\u8be5\u7c7b\u7528\u4e8e\u5b58\u50a8\u4ece\u8868\u5355\u53d1\u9001\u8fc7\u6765\u7684 indexForm \u7684\u5185\u5bb9\u3002<\/p>\n<pre class=\"post-pre\"><code><span class=\"kn\">package<\/span> <span class=\"nn\">org.mygroup.webapp.model<\/span><span class=\"o\">;<\/span>\r\n\r\n<span class=\"kd\">public<\/span> <span class=\"kd\">class<\/span> <span class=\"nc\">IndexForm<\/span> <span class=\"o\">{<\/span>\r\n\r\n    <span class=\"kd\">private<\/span> <span class=\"kt\">long<\/span> <span class=\"n\">id<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"kd\">private<\/span> <span class=\"nc\">String<\/span> <span class=\"n\">content<\/span><span class=\"o\">;<\/span>\r\n\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">long<\/span> <span class=\"nf\">getId<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"k\">return<\/span> <span class=\"n\">id<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"o\">}<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">setId<\/span><span class=\"o\">(<\/span><span class=\"kt\">long<\/span> <span class=\"n\">id<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">id<\/span> <span class=\"o\">=<\/span> <span class=\"n\">id<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"o\">}<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">getContent<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"k\">return<\/span> <span class=\"n\">content<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"o\">}<\/span>\r\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">setContent<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">content<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\r\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">content<\/span> <span class=\"o\">=<\/span> <span class=\"n\">content<\/span><span class=\"o\">;<\/span>\r\n    <span class=\"o\">}<\/span>\r\n<span class=\"o\">}<\/span>\r\n<\/code><\/pre>\n<hr \/>\n<h4>Gradle\u7684bootRun\u6307\u4ee4<\/h4>\n<p>\u4f7f\u7528IntelliJ IDEA\u7684\u7ec8\u7aef\uff0c\u6267\u884cgradle bootRun\u547d\u4ee4\u3002<br \/>\n\u5728\u4efb\u610f\u7684\u6d4f\u89c8\u5668\u4e2d\u8fde\u63a5\u5230localhost:8080\uff0c\u8fdb\u884c\u7f51\u7ad9\u7684\u8fd0\u884c\u786e\u8ba4\u3002<\/p>\n<hr \/>\n<h4>\u5176\u4ed6<\/h4>\n<p>\u53ef\u4ee5\u5728\/src\/main\/resources\/application.properties\u4e2d\u8fdb\u884c\u7aef\u53e3\u66f4\u6539\u548c\u70ed\u90e8\u7f72\u914d\u7f6e\u3002<\/p>\n<pre class=\"post-pre\"><code>server.port=8080\r\nspring.thymeleaf.cache=false\r\n<\/code><\/pre>\n<hr \/>\n<h4>\u5728GitHub\u4e0a\u53d1\u5e03<\/h4>\n<p>\u5728 Mac Book Air (MBA) \u7684\u521d\u59cb\u8bbe\u7f6e\u5907\u5fd8\u5f55 Part2 \u4e2d\uff0c<br \/>\n\u5df2\u7ecf\u53ef\u4ee5\u8fde\u63a5\u5230 GitHub\u3002<\/p>\n<p>\u5728GitHub\u4e0a\u521b\u5efa\u4e00\u4e2a\u540d\u4e3aspring-boot-example1\u7684\u4ed3\u5e93\u3002-&gt; \u5728\u9879\u76ee\u6839\u76ee\u5f55\u4e0b\u4f7f\u7528vim .gitignore\u547d\u4ee4\uff0c\u8fdb\u884c\u5982\u4e0b\u7f16\u8f91<\/p>\n<pre class=\"post-pre\"><code>.DS_Store\r\n.gradle\r\n.idea\r\nbuild*\r\ngradle*\r\n*.iml\r\nsettings*\r\n<\/code><\/pre>\n<p>\u63a5\u4e0b\u6765\uff0c\u6267\u884c\u4ee5\u4e0b\u64cd\u4f5c\u3002<\/p>\n<pre class=\"post-pre\"><code>git init\r\ngit add .\r\ngit commit -m 'spring boot example1: handling form submission'\r\ngit remote add origin github:\/username\/spring-boot-example1.git\r\ngit push -u origin master\r\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u503c\u3002 \uff08\u7528\u4e2d\u6587\uff092015\u5e7410\u670831\u65e5\u7684\u7ea6\u585e\u7c73\u8482\u516c\u56ed\u3002 \u6211\u4ece\u521b\u5efaSpr [&hellip;]<\/p>\n","protected":false},"author":5,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[],"class_list":["post-40057","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>\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c - 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\/\u4f7f\u7528spring-boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c\u3002\/\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c\" \/>\n<meta property=\"og:description\" content=\"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u503c\u3002 \uff08\u7528\u4e2d\u6587\uff092015\u5e7410\u670831\u65e5\u7684\u7ea6\u585e\u7c73\u8482\u516c\u56ed\u3002 \u6211\u4ece\u521b\u5efaSpr [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528spring-boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c\u3002\/\" \/>\n<meta property=\"og:site_name\" content=\"Blog - Silicon Cloud\" \/>\n<meta property=\"article:published_time\" content=\"2023-11-11T07:07:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2024-04-29T23:42:56+00:00\" \/>\n<meta name=\"author\" content=\"\u6e05, \u5b87\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"\u6e05, \u5b87\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 \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\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/\",\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/\",\"name\":\"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c - Blog - Silicon Cloud\",\"isPartOf\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#website\"},\"datePublished\":\"2023-11-11T07:07:15+00:00\",\"dateModified\":\"2024-04-29T23:42:56+00:00\",\"author\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.silicloud.com\/zh\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c\"}]},{\"@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\/1a6ecd3d914d22a5ac32791ffc1fbd8e\",\"name\":\"\u6e05, \u5b87\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g\",\"caption\":\"\u6e05, \u5b87\"},\"url\":\"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/\"},{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/#local-main-organization-logo\",\"url\":\"\",\"contentUrl\":\"\",\"caption\":\"Blog - Silicon Cloud\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c - 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\/\u4f7f\u7528spring-boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c\u3002\/","og_locale":"zh_CN","og_type":"article","og_title":"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c","og_description":"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u503c\u3002 \uff08\u7528\u4e2d\u6587\uff092015\u5e7410\u670831\u65e5\u7684\u7ea6\u585e\u7c73\u8482\u516c\u56ed\u3002 \u6211\u4ece\u521b\u5efaSpr [&hellip;]","og_url":"https:\/\/www.silicloud.com\/zh\/blog\/\u4f7f\u7528spring-boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c\u3002\/","og_site_name":"Blog - Silicon Cloud","article_published_time":"2023-11-11T07:07:15+00:00","article_modified_time":"2024-04-29T23:42:56+00:00","author":"\u6e05, \u5b87","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"\u6e05, \u5b87","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"4 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/","url":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/","name":"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c - Blog - Silicon Cloud","isPartOf":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#website"},"datePublished":"2023-11-11T07:07:15+00:00","dateModified":"2024-04-29T23:42:56+00:00","author":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/1a6ecd3d914d22a5ac32791ffc1fbd8e"},"breadcrumb":{"@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.silicloud.com\/zh\/blog\/"},{"@type":"ListItem","position":2,"name":"\u4f7f\u7528Spring Boot\u83b7\u53d6\u5e76\u64cd\u4f5c\u8868\u5355\u7684\u503c"}]},{"@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\/1a6ecd3d914d22a5ac32791ffc1fbd8e","name":"\u6e05, \u5b87","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/4b2016c18459a605fc469c7566608f5686491baa112d0871ee613f61b7210565?s=96&d=mm&r=g","caption":"\u6e05, \u5b87"},"url":"https:\/\/www.silicloud.com\/zh\/blog\/author\/qingyu\/"},{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.silicloud.com\/zh\/blog\/%e4%bd%bf%e7%94%a8spring-boot%e8%8e%b7%e5%8f%96%e5%b9%b6%e6%93%8d%e4%bd%9c%e8%a1%a8%e5%8d%95%e7%9a%84%e5%80%bc%e3%80%82\/#local-main-organization-logo","url":"","contentUrl":"","caption":"Blog - Silicon Cloud"}]}},"_links":{"self":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/40057","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\/5"}],"replies":[{"embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/comments?post=40057"}],"version-history":[{"count":2,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/40057\/revisions"}],"predecessor-version":[{"id":90601,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/posts\/40057\/revisions\/90601"}],"wp:attachment":[{"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/media?parent=40057"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/categories?post=40057"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.silicloud.com\/zh\/blog\/wp-json\/wp\/v2\/tags?post=40057"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}