一、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 = "";@PostConstructpublic void init() {SECRET_ID = secretId;SECRET_KEY = secretKey;BUCKET_REGION = bucketRegion;BUCKET_NAME = bucketName;}
@PostConstruct
注解通常用于在Bean初始化后执行特定的初始化操作,这样就可以解决了
二、SpringBoot单元测试指定加载配置文件?
就是我们有多个配置文件时,需要指定加载yml文件,在你的测试类上加上它,看代码
@ActiveProfiles("dev") //指定加载yml配置环境