SpringBoot使用@Value从yml文件取值为空--注入静态变量
SpringBoot使用@Value从yml文件取值为空--注入静态变量
1.application.yml中配置内容如下:
- pcacmgr:
- publicCertFilePath: E:\\pcacmgr\\CerFiles\\xh_public.cer
- encPublicCertFilePath: E:\\pcacmgr\\CerFiles\\hjzf_encPublic.cer
- encPfxFilePath: E:\\pcacmgr\\CerFiles\\hjzf_encPfx.pfx
- encPfxFilePwd: 11111111
2.通过@Value获取值:
- @Configuration
- public class PcacIntegrationUtil {
- @Value("${pcacmgr.publicCertFilePath}")
- private static String publicCertFilePath;
- @Value("${pcacmgr.encPfxFilePath}")
- private static String encPfxFilePath;
- @Value("${pcacmgr.encPfxFilePwd}")
- private static String encPfxFilePwd;
- @Value("${pcacmgr.encPublicCertFilePath}")
- private static String encPublicCertFilePath;
- public static String signData(String sourceData) {
- System.out.println(publicCertFilePath);
- }
- }
3.启动项目调用过程中发现获取值为null。
4.发现是static导致,以下为解决方案:
- @Configuration
- public class PcacIntegrationUtil {
- private static Logger logger = LoggerFactory.getLogger(PcacIntegrationUtil.class);
- private static String publicCertFilePath;
- public static String getPublicCertFilePath() {
- return publicCertFilePath;
- }
- @Value("${pcacmgr.publicCertFilePath}")
- public void setPublicCertFilePath(String publicCertFilePath) {
- PcacIntegrationUtil.publicCertFilePath = publicCertFilePath;
- }
- public static String signData(String sourceData) {
- System.out.println(publicCertFilePath);
- }
- }
问题解决,打印结果与yml文件配置的内容相符。
心得:使用注解的方式,不过注解写在非static的方法上(Spring的注解不支持静态的变量和方法)。
SpringBoot使用@Value从yml文件取值为空--注入静态变量的更多相关文章
- setlocale(LC_ALL, ""); 取值为空字符串" "(注意,不是NULL),则locale与本地环境所使用的编码方式相同(在本地化时,应该很有用);
在C运行库提供的多字节字符-宽字符转换函数:mbstowcs()/wcstombs()中,需要用到全局变量locale( locale encoding ),以指定多字节字符的编码类型 1. 功能: ...
- springboot的yaml基础语法与取值,配置类,配置文件加载优先级
1.基本语法k:(空格)v:表示一对键值对(一个空格必须有):以空格的缩进来控制层级关系:只要是左对齐的一列数据,都是同一个层级的属性和值也是大小写敏感: server: port: 8081 pat ...
- SpringBoot加载自定义yml文件
自定义配置文件(跟SpringBoot的application.yml同一目录下): nlu-parse-rule: title: "NLU响应结果解析规则" desc: &quo ...
- springboot:读取application.yml文件
现在开发主要使用微服务框架springboot,在springboot中经常遇到读取application.yml文件的情形. 一.概述 开发过程中经常遇到要读取application.yml文件中的 ...
- Springboot读取自定义的yml文件中的List对象
Yml文件(novellist.xml)如下: novellist: list: - name: 笑傲江湖 type: 武侠 master: 令狐冲 a ...
- ASP.NET页面使用JQuery EasyUI生成Dialog后台取值为空
原因: JQuery EasyUI生成Dialog后原来的文档结构发生了变化,原本在form里的内容被移动form外面,提交到后台后就没有办法取值了. 解决办法: 在生成Dialog后将它append ...
- springboot加载application.yml文件null
话不多说,直接上代码 本人项目为maven项目 以下是项目结构 pom.xml文件 <?xml version="1.0" encoding="UTF-8" ...
- springboot配置多个yml文件
新接触了springboot项目,yml一大堆,启动不知道用的哪个,各种百度后: <profiles> <profile> <id>dev</id> & ...
- 从xml文件取值
假设有个 test.xml,包含以下字段: <config> <property name="login_protocol" value="http&q ...
随机推荐
- Pythagorean Triples 707C
Katya studies in a fifth grade. Recently her class studied right triangles and the Pythagorean theor ...
- 尚硅谷springboot学习14-自动配置原理
配置文件能配置哪些属性 配置文件能配置的属性参照 自动配置的原理 1).SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 2).@Ena ...
- PCA 降维
http://f.dataguru.cn/spark-751832-1-1.html 我们可以利用PCA算法将向量的维数降低,从而实现特征转化.具体原理在<机器学习>课程中有详细的讲述.故 ...
- opencv输出图片像素值
需求:在控制台输出灰度图像的像素值 代码: #include <stdio.h> #include <iostream> #include <opencv2/core/c ...
- yii 定义场景
定义场景可以限制对字段的增删改查操作
- python 删除模块
import systry: import librabbitmqexcept Exception: passelse: version = getattr(librabbitmq, ...
- vue watch,computed,metods的区别
通俗来讲:computed是在HTML DOM加载后马上执行的,如赋值:而methods则必须要有一定的触发条件才能执行,如点击事件:watch呢?它用于观察Vue实例上的数据变动.对应一个对象,键是 ...
- OpenCV SVM
#include <opencv2/core/core.hpp> #include <opencv2/highgui/highgui.hpp> #include <ope ...
- metasploit framework(十一):获取漏洞信息
查看参数 这个模块运行需要一个session 所以需要先获取到一个session 就获得了一个session 再回到枚举补丁模块 添加session 查看参数看到session已经添加上去了 run ...
- 安装好kali要做的事
更换更新源 vim /etc/apt/sources.list #中科大deb http://mirrors.ustc.edu.cn/kali kali-rolling main non-free c ...