ConfigurationClassPostProcessor 之 @PropertySource
加载指定的属性文件(*.properties)到 Spring 的 Environment 中。可以配合 @Value 和 @ConfigurationProperties 使用。
- @PropertySource 和 @Value 组合使用,可以将自定义属性文件中的属性变量值注入到当前类的使用@Value 注解的成员变量中。
- @PropertySource 和 @ConfigurationProperties 组合使用,可以将属性文件与一个 Java 类绑定,将属性文件中的变量值注入到该 Java 类的成员变量中。
@PropertySource 和 @Value 组合使用
properties
test.name=Tom
java
package com.github.mengweijin.mybatisplus.demo.PropertySource;
import lombok.Data;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;
@Data
@Configuration
@PropertySource(value = "classpath:test.properties")
public class PropertySourceConfiguration {
@Value("${test.name}")
private String name;
}
测试
java
package com.github.mengweijin.mybatisplus.demo.PropertySource;
import lombok.extern.slf4j.Slf4j;
import org.junit.jupiter.api.Assertions;
import org.junit.jupiter.api.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
@Slf4j
public class TestPropertySource {
@Test
public void test(){
String basePackages = "com.github.mengweijin.mybatisplus.demo.PropertySource";
AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(basePackages);
PropertySourceConfiguration bean = context.getBean(PropertySourceConfiguration.class);
Assertions.assertEquals("Tom", bean.getName());
context.close();
}
}
@PropertySource 和 @ConfigurationProperties 组合使用
java
@Data
@Configuration
@PropertySource(value = "classpath:test.properties")
@ConfigurationProperties(prefix = "test")
public class TestProperties {
private String name;
}