Spring Boot特点:
- 依赖管理
- 基于java代码的配置
- 自动配置
- Bean管理
- 嵌入式HTTP服务器,单一可执行jar包
依赖管理
Spring Boot的一大特色就是减少了POM依赖配置,Spring Boot通过提供一系列的Starter来管理依赖,保证依赖的兼容性和一致性。详细可以参考我的另一篇博文Spring Boot Starter https://www.cnblogs.com/stronger-brother/p/12097235.html
基于java代码的配置
传统的Spring应用程序偏好XML配置,但是Spring Boot应用程序偏好基于Java代码的配置,同时Spring Boot也支持XML配置。在Spring Boot中,配置类通过@Configuration注解标注,如果你偏好XML配置,可以在配置类上使用@ImportResource注解导入XML配置资源。配置可以按分类划入到多个配置类中,然后通过@Import注解导入合并,也可以使用@ComponentScan自动合并配置类。
自动配置
在启动了自动配置之后,Spring Boot将会根据您的应用程序依赖的jar包自动配置Spring。例如,如果您的应用程序中包含HSQLDB包,您不需要配置任何数据库连接Bean,Spring Boot会自动配置一个内存数据库。通过在@Configuration配置类上标注@EnableAutoConfiguration来启用自动配置,通过@EnableAutoConfiguration也可以禁用自动配置。例如,如果我们不想在引用了HSQLDB之后自动配置数据源,可以通过@EnableAutoConfiguration注解的exclude属性排除对数据源的自动配置,代码如下:
import org.springframework.boot.autoconfigure.*; import org.springframework.boot.autoconfigure.jdbc.*; import org.springframework.context.annotation.*; @Configuration(proxyBeanMethods = false) @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class}) public class MyConfiguration { }
如果路径中不存在要排除的类,可以使用@EnableAutoConfiguration的excludeName属性通过指定类的全限定名称排除。
Bean的管理
Spring Boot对Bean的管理和Spring是一致的,传统的@Service、@Componennt、@Autowried注解依然可以使用,同时Spring Boot提供了@ComponentScan注解来进行组件扫描。
嵌入式HTTP服务器,单一可执行jar包
Spring Boot支持把Tomcat、Jetty等HTTP服务器嵌入到应用程序中,然后和应用代码一起生成一个单一可执行的jar包,方便传输和部署。
@SpringBootApplication
@SpringBootApplication注解是一个集大成者,它集合了下面三个注解的功能的,从而简化了配置。
- @EnableAutoConfiguration 启用自动配置
- @ComponentScan 组件扫描
- @Configuation 配置Bean或导入其他的配置
package com.example.myapplication; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } }