﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-业精于勤荒于嬉，行成于思毁于随-随笔分类-spring boot相关案例积累</title><link>http://www.blogjava.net/produ/category/55049.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 01 Jun 2016 07:39:01 GMT</lastBuildDate><pubDate>Wed, 01 Jun 2016 07:39:01 GMT</pubDate><ttl>60</ttl><item><title>spring boot：闪电上手</title><link>http://www.blogjava.net/produ/archive/2016/06/01/430728.html</link><dc:creator>都较瘦</dc:creator><author>都较瘦</author><pubDate>Wed, 01 Jun 2016 04:00:00 GMT</pubDate><guid>http://www.blogjava.net/produ/archive/2016/06/01/430728.html</guid><wfw:comment>http://www.blogjava.net/produ/comments/430728.html</wfw:comment><comments>http://www.blogjava.net/produ/archive/2016/06/01/430728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/produ/comments/commentRss/430728.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/produ/services/trackbacks/430728.html</trackback:ping><description><![CDATA[<strong>spring-boot是什么？<br /></strong>spring-boot是spring的一个子项目，spring-boot旨在能够快速构建基于spring的独立的，产品级别的应用，拥有&#8220;一键启动&#8221;，&#8220;配置简约&#8221;，&#8220;内置服务器&#8221;，&#8220;应用健康检查&#8221;等一系列高逼格的功能。<br /><br /><strong>spring-boot hello world<br /></strong><span style="color: red;"><strong>注：这里的hello world并没有一板一眼的将官网的案例照搬，而是希望以一种最快速的方式构建一个由spring boot构建的应用，让包括我在内的对spring boot陌生的同学对它有一个最直观的感受。<br /></strong></span><br />java<br /><img src="http://www.blogjava.net/images/blogjava_net/produ/21s6basfha.png" border="0" alt="" /><br /><br />IDE<br /><img src="http://www.blogjava.net/images/blogjava_net/produ/6h1sd6h.png" border="0" alt="" /><br /><br />Maven（Eclipse内置）<br /><img src="http://www.blogjava.net/images/blogjava_net/produ/afoppoakw.png" border="0" alt="" /><br />你也可以自行配置一个外部Maven，随意<br /><br />接下来我们新建一个Maven项目，我们选取webapp模板<br /><img src="http://www.blogjava.net/images/blogjava_net/produ/uawrn.png" border="0" alt="" /><br /><img src="http://www.blogjava.net/images/blogjava_net/produ/daf24s.png" border="0" alt="" /><br /><br />搭建完毕之后，我们需要修改pom.xml文件，将spring boot相关的依赖添加进去<br />首先，添加parent节点到pom.xml<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">1</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">parent</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.springframework.boot<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000ff;">&gt;</span>spring-boot-starter-parent<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>1.3.5.RELEASE<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">parent</span><span style="color: #0000FF; ">&gt;</span></div>spring boot提供了一系列的&#8220;<span style="background-color: #ffff00;">starter POMs</span>&#8221;,可以轻松的添加相关的jar到项目的类路径下，而<span style="background-color: #ffff00;">spring-boot-starter-parent</span>节点则是一个特殊的&#8220;starter&#8221;，它提供了很多maven默认的依赖，并且提供了依赖管理，使得我们可以忽略依赖的版本号，也就是说我们无需再声明<span style="background-color: #ffff00;">version</span>标识。<br /><strong style="color: red;"><br />*starter POMs：可以理解一系列的依赖，每一个依赖都提供了该功能所需的jar包</strong><br /><br />我们添加<span style="background-color: #ffff00;">spring-boot-starter-web</span>到pom.xml<br /><div style="background-color:#eeeeee;font-size:13px;border:1px solid #CCCCCC;padding-right: 5px;padding-bottom: 4px;padding-left: 4px;padding-top: 4px;width: 98%;word-break:break-all"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">parent</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.springframework.boot<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>spring-boot-starter-parent<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span>1.3.5.RELEASE<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">version</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">parent</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span>org.springframework.boot<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">groupId</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">10</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span>spring-boot-starter-web<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">artifactId</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependency</span><span style="color: #0000FF; ">&gt;</span><br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">&lt;/</span><span style="color: #800000; ">dependencies</span><span style="color: #0000FF; ">&gt;</span></div>之后我们看到构建web应用所需的jar包已经添加到Maven依赖中了<br /><img src="http://www.blogjava.net/images/blogjava_net/produ/sbs28.png" border="0" alt="" /><br /><br />更多关于&#8220;starter&#8221;的信息可以查看<br /><a href="http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-starter" target="_blank">http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-starter</a><br /><br />接下来可以写代码了，添加一个&#8220;控制器&#8221;到src/main/java/demo下<br /><div style="font-size: 13px; border: 1px solid #cccccc; padding: 4px 5px 4px 4px; width: 98%; word-break: break-all; background-color: #eeeeee;"><!--<br /><br />Code highlighting produced by Actipro CodeHighlighter (freeware)<br />http://www.CodeHighlighter.com/<br /><br />--><span style="color: #008080; ">&nbsp;1</span>&nbsp;<span style="color: #0000FF; ">package</span>&nbsp;demo;<br /><span style="color: #008080; ">&nbsp;2</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;3</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;org.springframework.boot.*;<br /><span style="color: #008080; ">&nbsp;4</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;org.springframework.boot.autoconfigure.*;<br /><span style="color: #008080; ">&nbsp;5</span>&nbsp;<span style="color: #0000FF; ">import</span>&nbsp;org.springframework.web.bind.annotation.*;<br /><span style="color: #008080; ">&nbsp;6</span>&nbsp;<br /><span style="color: #008080; ">&nbsp;7</span>&nbsp;@RestController<br /><span style="color: #008080; ">&nbsp;8</span>&nbsp;@EnableAutoConfiguration<br /><span style="color: #008080; ">&nbsp;9</span>&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">class</span>&nbsp;Example&nbsp;{<br /><span style="color: #008080; ">10</span>&nbsp;<br /><span style="color: #008080; ">11</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;@RequestMapping("/")<br /><span style="color: #008080; ">12</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;String&nbsp;home()&nbsp;{<br /><span style="color: #008080; ">13</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">return</span>&nbsp;"Hello&nbsp;World!";<br /><span style="color: #008080; ">14</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">15</span>&nbsp;<br /><span style="color: #008080; ">16</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #0000FF; ">public</span>&nbsp;<span style="color: #0000FF; ">static</span>&nbsp;<span style="color: #0000FF; ">void</span>&nbsp;main(String[]&nbsp;args)&nbsp;<span style="color: #0000FF; ">throws</span>&nbsp;Exception&nbsp;{<br /><span style="color: #008080; ">17</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SpringApplication.run(Example.<span style="color: #0000FF; ">class</span>,&nbsp;args);<br /><span style="color: #008080; ">18</span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}<br /><span style="color: #008080; ">19</span>&nbsp;<br /><span style="color: #008080; ">20</span>&nbsp;}</div>之后我们&#8220;run as Java application&#8221;或者通过Maven goals&#8220;spring-boot:run&#8221;，就可以发现，我们的服务已经在本地的8080端口启动了。<br /><img src="http://www.blogjava.net/images/blogjava_net/produ/znz02sz.png" border="0" alt="" /><br />是不是太快了...我也这么觉得，真的是&#8220;傻瓜式&#8221;的部署<br /><br /><span style="background-color: #ffff00;">@RestController</span><br />这个注解是&#8220;stereotype annotation&#8221;（不知道怎么翻译合适，或许可以理解为&#8220;套版注解&#8221;），在阅读代码的时候给读者提供必要的提示，对于spring来说，他扮演了一个特别的角色，在案例中他是一个web的控制器，所以spring会用他来处理对应的请求。<br /><br /><div><span style="background-color: #ffff00;">@RequestMapping<br /></span></div>用过spring-MVC的同学都知道，这个注解用来对应路由<br /><br /><div><span style="background-color: #ffff00;">@EnableAutoConfiguration</span></div>这个注解就比较牛皮了，也是目前为止个人感觉spring boot强大的地方之一。这个注解告知spring，去通过你添加的依赖，&#8220;猜测&#8221;你想要怎么去配置spring，比如我们添加了start POM <span style="background-color: #ffff00;">spring-boot-starter-web</span>，那么spring会认为我们需要部署一个web应用，所以spring boot帮助我们启动tomcat服务，配置springMVC等操作。官方文档同时提到，@EnableAutoConfiguration注解在设计时就与start POMs协作良好，但是二者并不绝对相关，就算没有start POM，spring boot依然会尽最大努力去自动配置（笑）<br /><br />截止目前，排除细节的情况下，已经通过最简单粗暴的方式构造了一个spring boot的应用，希望在认知上能给大家一点帮助，但是还远远不够，后续还要添加更多与web应用相关的内容。<img src ="http://www.blogjava.net/produ/aggbug/430728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/produ/" target="_blank">都较瘦</a> 2016-06-01 12:00 <a href="http://www.blogjava.net/produ/archive/2016/06/01/430728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>