配置方式一:
新建一个类
- @ConfigurationProperties(prefix = “student”)
Springboot标记了IOC容器里面的一个对象
当IOC里面的对象初始化完成之后,再去扫描ConfigurationPropertes,然后把配置文件里面是student前缀开头的配置注入到IOC这个对象的相应set方法里面去
在application.properties配置文件里注入属性值
注:可能在配置文件中没有提示属性值名称,加入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
配置方式二:
类里面的配置相同
建立application.yml文件
application.properties文件配置的优先级高于yml
区别:@ConfigurationProperties(prefix = “student”)和@Value
@ConfigurationProperties :批量注入
@Value 一个个指定(属性名上写)例如:
@Value("${student.name}")
private String name;
并且不支持list,map等复杂数据类型
其他配置的注解:
@PropertySource
上面的配置文件都是写在application.properties或者application.yml中的,如果不想写在里面用@PropertySource注解即可,创建student.propertes配置文件,在里面写配置
也可将其写在启动类上面
@ImportResource
@ImportResource(“classpath=”)
使用原来(spring)形式的注解,创建xxx.xml (极度不推荐)
<bean id="" class="{>
<property name="" value=""> </property>
</bena>
@profiles
1.为什么要使用@profiles
在开发中,一般有两种环境
- 生产环境(项目上线,客户在使用)
- 开发环境
有时候开发环境和生产环境的配置是不一样的,如何做到快速切换呢,这里就要使用到@profiles
2.使用方法
1.创建application-dev.properties
server.port=8081
2.创建application-pro.properties
server.port=8082
3.修改applicationproperties
server.port=8080
spring.profiles.active=pro
配置文件加载优先级和外部配置文件加载
内部配置文件架加载
内部配置文件加载有哪些目录
- ./ 项目的根目录
- ./config/ 项目根目录下的config目录
- classpath:/ 编译路径下的根目录
- classpath:/config/ 编译路径下的config目录
优先级
外部配置文件架加载
- 文件加载
- 默认会加载
./config/application.yml
./application.yml
- 默认会加载
- 属性加载
server.port=****