全局配置文件
全局配置文件能够对一些默认配置值进行修改。Spring Boot使用一个application.properties或者application.yaml的文件作为全局配置文件,该文件存放在src/main/resource目录或者类路径的/config,一般会选择resource目录。接下来,将针对这两种全局配置文件进行讲解∶
application.properties配置文件
使用Spring lnitializr方式构建Spring Boot项目时,会在resource目录下自动生成一个空的application.properties文件,Spring Boot项目启动时会自动加载application.properties文件。我们可以在application.properties文件中定义Spring Boot项目的相关属性,当然,这些相关属性可以是系统属性、环境变量、命令参数等信息,也可以是自定义配置文件名称和位置。
server.port=17006
spring.config.name=zjq
spring.application.name=zjq-properties
spring.redis.host=localhost
spring.redis.port=6039
spring.redis.password=
spring.redis.database=0
复制代码
接下来,通过一个案例对Spring Boot项目中application.properties配置文件的具体使用进行讲解。 演示:准备两个实体类文件,演示将application.properties配置文件中的自定义配置属性注入到PropertiesConfig实体类的对应属性中
- 创建两个实体类Goods和PropertiesConfig
@Data
public class Goods {
private Integer id;
private String name;
}
@ConfigurationProperties(prefix = "zjq-prop")
@Component
@Data
public class PropertiesConfig {
private Integer id;
private String username;
private List hobby;
private String[] family;
private Map map;
private Goods goods;
}
复制代码
@ConfigurationProperties
: 将配置文件中以zjqProp开头的属性通过setXxx方法注入到该类的属性中 @Component
: 把PropertiesConfig类作为Bean到spring容器中,只有这样才能@ConfigurationProperties注解进行赋值
- 在resources目录下创建的application.properties文件配置如下:
编写application.properties配置文件时,由于要配置的PropertiesConfig对象属性是我们自定义的,Spring Boot无法自动识别,所以不会有任何书写提示。在实际开发中,为了出现代码提示的效果来方便配置,在使用@ConfigurationProperties注解进行配置文件属性值注入时,可以在pom.xml文件中添加一个SpringBoot提供的配置处理器依赖:
<!--自定义配置提示-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
复制代码
在pom.xml中添加上述配置依赖后,还需要重新运行项目启动类或者使用“Ctrl+F9"快捷键(即BuildProject)重构当前Spring Boot项目方可生效。 效果如下:
- 查看application.properties配置文件是否正确,同时查看属性配置效果,创建项目测试类,在该测试类中引入PropertiesConfig实体类Bean,并进行输出测试。
@RunWith(SpringRunner.class) // 测试启动类,并加载Spring Boot测试注解
@SpringBootTest //标记为SpringBoot测试类,并加载ApplicationContext上下文环境
public class ConfigTest {
@Autowired
private PropertiesConfig propertiesConfig;
@Test
public void propertiesConfigTest(){
System.out.println(propertiesConfig);
}
}
复制代码
输出如下:
至此,说明application.properties配置文件属性配置正确,并通过相关注解自动完成了属性注入。
application.yaml配置文件
YAML文件格式是Spring Boot支持的一种JSON超集文件格式,相较于传统的Properties配置文件,YAML文件以数据为核心,是一种更为直观且容易被电脑识别的数据序列化格式。application.yaml配置文件