Spring Boot 简介
- Spring boot是Spring家族中的一个全新的框架,它用来简化Spring应用程序的创建和开发过程,也可以说Spring boot能简化我们之前采用Spring mvc + Spring + MyBatis 框架进行开发的过程;
- 在以往我们采用 Spring mvc + Spring + MyBatis 框架进行开发的时候,搭建和整合三大框架,我们需要做很多工作,比如配置web.xml,配置Spring,配置MyBatis,并将它们整合在一起等,而Spring boot框架对此开发过程进行了革命性的颠覆,抛弃了繁琐的xml配置过程,采用大量的默认配置简化我们的开发过程;
- 所以采用Spring boot可以非常容易和快速地创建基于Spring 框架的应用程序,它让编码变简单了,配置变简单了,部署变简单了,监控变简单了;
- 正因为 Spring boot 它化繁为简,让开发变得极其简单和快速,所以在业界备受关注;
- Spring boot 在国内的关注趋势图:http://t.cn/ROQLquP
Spring Boot 特性
- 能够快速创建基于Spring的应用程序;
- 能够直接使用java main方法启动内嵌的Tomcat, Jetty 服务器运行Spring boot程序,不需要部署war包文件;
- 提供约定的starter POM来简化Maven配置,让Maven的配置变得简单;
- 根据项目的Maven依赖配置,Spring boot自动配置Spring、Spring mvc等;
- 提供了程序的健康检查等功能;
- 基本可以完全不使用XML配置文件,采用注解配置;
Spring Boot 四大核心
- 自动配置:针对很多Spring应用程序和常见的应用功能,Spring Boot能自动提供相关配置;
- 起步依赖:告诉Spring Boot需要什么功能,它就能引入需要的依赖库;
- Actuator:让你能够深入运行中的Spring Boot应用程序,一探Spring boot程序的内部信息;
- 命令行界面:这是Spring Boot的可选特性,主要针对 Groovy 语言使用;
Spring Boot 开发环境
1) 创建一个Spring boot项目;
- 可以采用方式一: 使用 eclipse 的 Spring Tool Suite (STS) 插件/或者 IDEA 自带的插件创建;
- 可以采用方式二:直接使用 Maven 创建项目的方式创建;
2) 加入Spring boot 的父级和起步依赖;
- 父级依赖(加入Spring boot父级依赖可以简化我们项目的Maven配置)
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.5.14.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
- 起步依赖(加入Spring boot 的起步依赖也可以简化我们项目的Maven配置)
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
3) 创建Spring boot 的入口main方法
@SpringBootApplication
public class Application {
//启动了springboot程序,启动spring容器,启动内嵌的tomcat
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
4) 创建一个Spring mvc 的Controller
@Controller
public class HelloController {
@RequestMapping("/hello")
@ResponseBody
public String hello(){
return "Hello, Spring Boot";
}
}
5) 运行Spring boot的入口main方法
通过eclipse、idea右键运行main方法;
6) 浏览器访问
至此,第一个Spring boot程序开发完成;
第一个 Spring boot 程序解析
- Spring Boot 的父级依赖spring-boot-starter-parent配置之后,当前的项目就是Spring Boot项目;
- spring-boot-starter-parent是一个特殊的starter依赖,它用来提供相关的Maven默认依赖,使用它之后,常用的jar包依赖可以省去version配置;
- Spring Boot提供了哪些默认jar包的依赖,可查看该父级依赖的pom文件;
- 如果不想使用某个默认的依赖版本,可以通过pom.xml文件的属性配置覆盖各个依赖项,比如覆盖Spring版本:
<properties>
<spring.version>5.0.0.RELEASE</spring.version>
</properties>
- @SpringBootApplication 注解是Spring Boot项目的核心注解,主要作用是开启Spring自动配置;
- main方法是一个标准的Java程序的main方法,主要作用是作为项目启动运行的入口;
- @Controller 及 @ResponseBody 依然是我们之前的Spring mvc,因为Spring boot的里面依然是使用我们的Spring mvc + Spring + MyBatis 等框架;