一. 什么是Spring Boot
它使用”习惯由于配置”(项目中存在大量的配置,此外还内置一个习惯性的配置,让你无须进行手动配置)的理念让你的项目快速运行起来。使用Spring
Boot
很容易创建一个独立运行(运行jar
,内嵌Servlet
容器),准生产级别的Spring
框架的项目,使用Spring
Boot
你可以不用或者只需要很少的Spring
配置。
二. Spring Boot核心功能
1. 独立运行的Spring项目
Spring
Boot
可以以jar
包的形式独立运行,运行一个Spring Boot
项目只需通过java -jar xx.jar
来运行
2. 内嵌Servlet容器
Spring
Boot
可选择内嵌的Tomcat
,Jetty
或者Undertow
,这样我们无须以war
包形式部署项目。
3. 提供starter简化Maven配置
Spring
提供了一系列的starter pom
来简化Maven
的依赖加载,例如,当你使用了spring-boot-starter-web
时时,会自动加入如下图所示的依赖包。
4. 自动配置Spring
Spring Boot
会根据在类路径中的jar
包,类,为jar包里的类自动配置Bean
,这样会极大地减少我们要使用的配置。当然,Spring
Boot
只是考虑了大多数的开发场景,并不是所有的场景,若在实际开发中我们需要自动配置Bean
,而Spring
Boot
没有提供支持,则可以自定义配置,后面会有介绍。
5. 准生产的应用监控
Spring Boot
提供基于http
,ssh
,telnet
对运行的项目进行监控
6. 无代码生成和xml配置
Spring
Boot
神奇的不是借助于代码生成来实现的,而是通过条件注解来实现的,这是Spring4.x
提供的新特性,在前面的文章Spring4.x高级话题(四):条件注解@Conditional中有过简单的演示。
Spring Boot
提倡使用Java
配置和注解配置组合,而Spring Boot
不需要任何xml
配置即可 实现Spring
的所有配置。
三. Spring Boot的优缺点
1. 优点:
(1) 快速构建项目;
(2) 对主流开发框架的无配置集成;
(3) 项目可独立运行,无须外部依赖Servlet
容器;
(4) 提供运行时的应用监控;
(5) 极大的提高了开发,部署效率;
(6) 与云计算的天然集成。
Spring Boot快速搭建
快速构建Spring Boot
的方式有很多种,开发工具也各种各样,下面主要介绍在Eclipse
下使用Maven
的方式构建Spring
Boot
项目。
一. 修改pom.xml
1. 添加Spring Boot的父级依赖
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.4.5.RELEASE</version>
<relativePath />
</parent>
到目前为止,spring
boot
已经更新了很多版本,我使用的版本是spring boot 1.4.5.RELEASE
。
添加Spring
Boot
的父级依赖之后,这样当前项目就是Spring
Boot
项目了。spring-boot-starter-parent
是一个特殊的starter
,它用来提供相关的Maven
默认依赖,使用它后,常用的包依赖可以省去version
标签,关于Spring
Boot
提供了哪些jar
包的依赖,可查看本地仓库下spring-boot-dependencies-1.4.5.RELEASE.pom
文件的声明,例如文件在我仓库的位置如下:
D:\Maven_Repository\org\springframework\boot\spring-boot-dependencies\1.4.5.RELEASE
2. 在dependencies
添加Web支持的starter pom,这样就添加了Web的依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3. 添加Spring Boot的编译插件
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
4. 添加入口类
代码如下所示:
package org.light4j.springboot.sample;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication //①
public class Application {
public static void main(String[] args) {//②
SpringApplication.run(Application .class, args);
}
}
代码解释:
①
@SpringBootApplication
是Spring Boot
项目的核心注解,主要目的是开启自动配置。
② 这是一个标准的Java
应用的main
方法,主要作用是作为项目启动的入口。
5. 添加测试控制器
代码如下所示:
package org.light4j.springboot.sample.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@RequestMapping("/")
public String hello() {
return "Hello Spring Boot";
}
}