<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.1.4.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent>
spring-boot-starter-parent主要提供了如下默认配置:
1.java版本默认使用1.8
2.编码格式默认使用utf-8
3.提供 Dependency Management 进行项目依赖的版本管理
4.默认的资源过滤与插件配置
启动类上的注解@SpringBootApplication,这个注解是一个组合注解,它由@SpringBootConfiguration,@EnableAutoConfiguration,@ComponentScan组合而成。
@SpringBootConfiguration原来就是一个@Configuration,所以该注解的功能就是表明这是一个配置类,开发者可以在这个类中配置Bean(类似Spring的applicationContext.xml
文件的角色)
@EnableAutoConfiguration表示开启自动化配置,Springboot的自动化配置时非侵入式的,在任意时刻,都可以使用自定义配置代替自动化配置的某一配置。
@ComponentScan完成包的扫描,也是Spring中的功能。由于该注解默认扫描的类都位于当前类所在包的下面,所以建议启动类在根目录下。
该注解除了扫描@Service , @Repository 、@Component、@Controller 和@RestController 等之外,也会扫描@Configuration 注解的类。
当添加了spring-boot-starter-web 依赖后,默认会使用Tomcat 作为Web容器。如果需要对Tomcat进行配置,可以在application.properties进行配置
# tomcat配置
server.port=8888
server.error.path=/error
# session失效时间 默认单位s
server.servlet.session.timeout=30m
# 默认无项目名
#server.servlet.context-path=/demo
server.tomcat.uri-encoding=utf-8
server.tomcat.max-threads=500
# logs
server.tomcat.basedir=/lego/logs
Spring Boot 中采用了大量的自动化的配置,在实际项目中不可避免会有一些需要自己手动配置,承载这些自定义配置的文件就是resources 目录下的
application .properties (也可以使用application.yml配置代替),这个文件可以在项目的如下四个位置(优先级也是如此):
1.项目根目录下的 config 文件夹中
2.项目根目录下
3.classpath下的 config 文件夹中
4.classpath下
Spring 提供了@Value 注解以及EnvironmentAware 接口来将Spring Environment中的数据注入到属性上, Spring Boot 对此进一步提出了类型安全配置属性( Type-s afe Configuration Properties )
考虑在application.properties 中添加如下一段配置:
book.name=三国演义
book.author=罗贯中
book.price=30
将这一段配置数据注入如下Bean 中:
@Component
@ConfigurationProperties(prefix=”book”)
public class Book {
private String name ;
private String author ;
private Float price ;
//省略getter/setter
}