关于添加@value值为null的问题
今天在开发时遇到了一个问题,在变量名上面添加了@value注解,路径写的也正确仍然为null。
拿其中的一个变量进行举例。
@Value("${scypt.oss.bucket}")
private static String endpoint;
在application.yml
已经写了对应的配置。
scypt:
oss:
bucket: yourbucket
但是对应的代码读到endpoint的时候就是为null,在研究无果的时候问了一下同事,恍然大悟。
我的@value注解是在api
的模块下进行的编写,里面没有启动类,而@value注解一定要在@SpringBootApplication
下扫描的类编写
然后使用了以下的代码解决上述的问题,成功读取到了配置文件中的值。
static{
/** 获取当前环境配置文件application-环境.properties内容 **/
ReadApplicationContent.setApplication();;
/** 替换占位符 **/
ReadApplicationContent.replacePlaceholder();
Map<String, String> applicationMap = ReadApplicationContent.getApplicationMap();
accessKeyId = applicationMap.get("accesskey");
accessKeySecret = applicationMap.get("secretkey");
endpoint = applicationMap.get("storageserverurl");
bucketName = applicationMap.get("bucket");
}