2.1.1版本要求:
- Java 8 至 Java 11
- Spring 5.1.3
内置工具支持:
- Maven 3.3+
- Gradle 4.4+
内置 servlet 容器:
- Tomcat 9.0 要求 Servlet 4.0
- Jetty 9.4 要求 Servlet 3.1
- Undertow 2.0 要求 Servlet 4.0
SpringBoot 应用程序可以部署在 Servlet 3.1 以上的任意容器中
spring-boot-starter-parent 提供了 maven默认设置以及dependency-management来省略引入包的版本(含有<executions>配置以绑定“二次打包”的目标)
spring-boot-starter-web 用于提供网络应用初始化(将会为应用加入Tomcat以及SpringMVC,RESTful风格)
spring-boot-maven-plugin 构建可执行jar包的必要依赖(若使用Spring Boot starter parent pom,就无需配置,只要引入插件即可)
spring-boot-starter-data-jpa 使用JPA(Java持久层API)需要引入的依赖
@RestController 表示直接返回结果字符串给调用者
@EnableAutoConfiguration 表示根据导入的依赖自动配置Spring
@ImportResource 可用于导入XML文件
@Configuration 可以注册额外的bean或者导入附加的配置类
@ComponentScan 用于扫描项目中设置的所有Spring组件(若不想使用该注解,可用@Import({XXXX.class,aaaa.class})代替)
@SpringBootApplication (设置在入口类上方)用于设置包扫描。使用此注解时相当于同时使用 @Configuration,@EnableAutoConfiguration 以及 @ComponentScan。并且使用的是这三者的默认配置。
如果不想使用该注解,同时使用@EnableAutoConfiguration 和 @ComponentScan 两者搭配可以作为替代
public class Example
{
public static void main(String[] args) throws Exception
{
//传入Example.class用以告知SpringApplication该类是主要的Spring组件,args数组用以暴露命令行语句
SpringApplication.run(Example.class, args);
}
}
SpringBoot官方推荐基于Java代码的设置模式(注解模式)
//建议将该注解设置于作为核心的并有@Configuration标识的类上
springboot自动基于导入的jar包进行配置(包括数据库链接的bean)(该功能通过 @SpringBootApplication 或 @EnableAutoConfiguration 实现)
设置不使用某部分自动装配功能
@EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
当类不在classpath中时,使用excludeName进行设置,此时需要完全路径
@EnableAutoConfiguration(excludeName={.../.../DataSourceAutoConfiguration.class})
配置包扫描时,如果一个bean拥有构造器,可以省略@Autowired注解
在加载静态资源时,springMVC可以设置HTTP请求缓存头用以响应
添加springboot提供的额外工具
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
使用该工具后,类路径下的文件有改动时会自动重启,便于开发者快速了解变化
该工具将缓存选项默认设置为禁用状态,当需要看到所有请求细节的日志时,将spring.http.log-request-details设为开启状态
该工具中的重启功能对于使用ObjectInputStream进行反序列化的对象效果不好