一、Spring无法加载静态属性,怎么解决?
Spring主要用于管理和注入Bean(对象)的实例属性,而不是静态属性。静态属性属于类本身,而不是类的实例,因此Spring的依赖注入机制不会处理它们。
看图,我当时就想这样写,但是发现不行,获取不到值
因为这些属性是静态的,不可以通过spring来赋值,可以删掉static就可以解决了,但是我的要调用吗,我不想注入,就是这样怎么解决?
@Value("${cos.secretId}")
private String secretId;
@Value("${cos.secretKey}")
private String secretKey;
@Value("${cos.bucketRegion}")
private String bucketRegion;
@Value("${cos.bucketName}")
private String bucketName;
public static String SECRET_ID = "";
public static String SECRET_KEY = "";
public static String BUCKET_REGION = "";
public static String BUCKET_NAME = "";
@PostConstruct
public void init() {
SECRET_ID = secretId;
SECRET_KEY = secretKey;
BUCKET_REGION = bucketRegion;
BUCKET_NAME = bucketName;
}
@PostConstruct
注解通常用于在Bean初始化后执行特定的初始化操作,这样就可以解决了
二、SpringBoot单元测试指定加载配置文件?
就是我们有多个配置文件时,需要指定加载yml文件,在你的测试类上加上它,看代码
@ActiveProfiles("dev") //指定加载yml配置环境