spring-boot是什么?
spring-boot是spring的一个子项目,spring-boot旨在能够快速构建基于spring的独立的,产品级别的应用,拥有“一键启动”,“配置简约”,“内置服务器”,“应用健康检查”等一系列高逼格的功能。
spring-boot hello world
注:这里的hello world并没有一板一眼的将官网的案例照搬,而是希望以一种最快速的方式构建一个由spring boot构建的应用,让包括我在内的对spring boot陌生的同学对它有一个最直观的感受。
java
IDE
Maven(Eclipse内置)
你也可以自行配置一个外部Maven,随意
接下来我们新建一个Maven项目,我们选取webapp模板
搭建完毕之后,我们需要修改pom.xml文件,将spring boot相关的依赖添加进去
首先,添加parent节点到pom.xml
1 <parent>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-starter-parent</artifactId>
4 <version>1.3.5.RELEASE</version>
5 </parent>
spring boot提供了一系列的“
starter POMs”,可以轻松的添加相关的jar到项目的类路径下,而
spring-boot-starter-parent节点则是一个特殊的“starter”,它提供了很多maven默认的依赖,并且提供了依赖管理,使得我们可以忽略依赖的版本号,也就是说我们无需再声明
version标识。
*starter POMs:可以理解一系列的依赖,每一个依赖都提供了该功能所需的jar包我们添加
spring-boot-starter-web到pom.xml
1 <parent>
2 <groupId>org.springframework.boot</groupId>
3 <artifactId>spring-boot-starter-parent</artifactId>
4 <version>1.3.5.RELEASE</version>
5 </parent>
6
7 <dependencies>
8 <dependency>
9 <groupId>org.springframework.boot</groupId>
10 <artifactId>spring-boot-starter-web</artifactId>
11 </dependency>
12 </dependencies>
之后我们看到构建web应用所需的jar包已经添加到Maven依赖中了
更多关于“starter”的信息可以查看
http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/htmlsingle/#using-boot-starter接下来可以写代码了,添加一个“控制器”到src/main/java/demo下
1 package demo;
2
3 import org.springframework.boot.*;
4 import org.springframework.boot.autoconfigure.*;
5 import org.springframework.web.bind.annotation.*;
6
7 @RestController
8 @EnableAutoConfiguration
9 public class Example {
10
11 @RequestMapping("/")
12 String home() {
13 return "Hello World!";
14 }
15
16 public static void main(String[] args) throws Exception {
17 SpringApplication.run(Example.class, args);
18 }
19
20 }
之后我们“run as Java application”或者通过Maven goals“spring-boot:run”,就可以发现,我们的服务已经在本地的8080端口启动了。
是不是太快了...我也这么觉得,真的是“傻瓜式”的部署
@RestController这个注解是“stereotype annotation”(不知道怎么翻译合适,或许可以理解为“套版注解”),在阅读代码的时候给读者提供必要的提示,对于spring来说,他扮演了一个特别的角色,在案例中他是一个web的控制器,所以spring会用他来处理对应的请求。
@RequestMapping
用过spring-MVC的同学都知道,这个注解用来对应路由
@EnableAutoConfiguration
这个注解就比较牛皮了,也是目前为止个人感觉spring boot强大的地方之一。这个注解告知spring,去通过你添加的依赖,“猜测”你想要怎么去配置spring,比如我们添加了start POM
spring-boot-starter-web,那么spring会认为我们需要部署一个web应用,所以spring boot帮助我们启动tomcat服务,配置springMVC等操作。官方文档同时提到,@EnableAutoConfiguration注解在设计时就与start POMs协作良好,但是二者并不绝对相关,就算没有start POM,spring boot依然会尽最大努力去自动配置(笑)
截止目前,排除细节的情况下,已经通过最简单粗暴的方式构造了一个spring boot的应用,希望在认知上能给大家一点帮助,但是还远远不够,后续还要添加更多与web应用相关的内容。