在Spring Boot项目中application.properties文件或者application.yml文件就是Spring Boot项目的配置文件。但是不单单从 application.properties 获取配置,所以我们可以在程序中多种设置配置属性。按照以下列表的优先级排列:
1.命令行参数
2.java:comp/env 里的 JNDI 属性
3.JVM 系统属性
4.操作系统环境变量
5.RandomValuePropertySource 属性类生成的 random.* 属性
6.应用以外的 application.properties(或 yml)文件
7.打包在应用内的 application.properties(或 yml)文件
8.在应用 @Configuration 配置类中,用 @PropertySource 注解声明的属性文件
9.SpringApplication.setDefaultProperties 声明的默认属性
关于配置文件,我建议使用application.yml文件,因为提供了结构化几嵌套的格式,也是实际开发中使用的。如,我们可以修改Tomcat的端口、上下文路径和字符集。注意冒号后面要加一个空格
启动项目
自定义属性
除了Spring Boot提供的属性外,我们还可以自定义属性
如果有汉字的话记得改yml文件的编码为UTF-8否则读取会乱码
再建一个Controller类,通过value属性取到自定义属性的值
启动项目,访问请求
假如我们要配置一个类别下的多个属性按上述方式就容易代码冗余了,我们可以使用ConfigurationProperties配置方式
新建一个PersonProperties类 把所有属性都配置上去
比如这样接下来定义一个实体类,
执行前缀person
以及加上@Component作为组件 方便其他地方注入
注意:ConfigurationProperties需要引入依赖,我们在pom文件添加依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
最后在Controller类里加一个方法
浏览器如下所示
多环境配置
很多场景的配置,比如数据库配置、Redis 配置、注册中心和日志配置等。在不同的环境,我们需要不同的包去运行项目。所有我们再加上两个配置文件:
application-dev.yml 开发环境
application-prod.yml 生产环境
我们可以分别在里面写各自的配置,只要在application.yml配置文件中指定spring.profiles.active的值即可加载对应的配置文件。