springboot偏好使用java class類型的來引入配置屬性,也就是將properties、json、YML格式的配置文件讀取到class中生成全局bean來使用,當(dāng)然考慮到歷史原因,還保留讀取xml格式資源文件的能力。
屬性配置到一個(gè)class中
- 創(chuàng)建一個(gè)獨(dú)立的class,包含全部的屬性,通過@Configuration注解該class聲明為配置類,然后再通過@Value將resources中的配置文件中的屬性值注入該類,或者通過@ConfigurationProperties(prefix = "oss")將某個(gè)屬性對(duì)象下的子屬性注入該類對(duì)應(yīng)的同名字段
@Data
@Configuration
@ConfigurationProperties(prefix = "oss")
public class OssConf {
@Value("${key1}")
private String key1;
@Value("${key2}")
private String key2;
private String endpoint;
private String accessKeyId;
private String accessKeySecret;
private String bucketName;
}
- 導(dǎo)入xml格式配置文件
通過@ImportResource聲明可以將xml格式的配置文件導(dǎo)入進(jìn)容器。
bean的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloService" class="com.chentongwei.springboot.service.HelloService"></bean>
</beans>
通過xml導(dǎo)入將bean注冊到容器
@SpringBootApplication
@ImportResource(locations = {"classpath:beans.xml"})
public class Springboot02ConfigApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot02ConfigApplication.class, args);
}
}
- 自動(dòng)配置
可以通過@EnableAutoConfiguration聲明自動(dòng)配置,但是建議在每個(gè)配置class上以@Configuration明確聲明配置類。