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 ...
随机推荐
- curl 超时设置<转>
PHP cURL 的超时设置有两个 CURLOPT_CONNECTTIMEOUT 和 CURLOPT_TIMEOUT,他们的区别是: CURLOPT_CONNECTTIMEOUT 用来告诉 PHP 在 ...
- 尚硅谷springboot学习14-自动配置原理
配置文件能配置哪些属性 配置文件能配置的属性参照 自动配置的原理 1).SpringBoot启动的时候加载主配置类,开启了自动配置功能 @EnableAutoConfiguration 2).@Ena ...
- delphi异常捕获try except语句 和 try finally语句用法
原文地址:delphi try except语句 和 try finally语句用法以及区别作者:1865898133 一直写程序都没管他们,也尽量很少用,今天终于想把他给弄个明白,在网上找来,记下! ...
- 使用xshell xftp连接centos的过程。
1 配置网络 登录Centtos系统,配置网卡. cd 空格/etc/sysconfig/network-scripts 回车键. ls 查看文件 vi ifcig-eth0 编辑这个文件 修改为 ...
- 使用jQuery匹配文档中所有的li元素,返回一个jQuery对象,然后通过数组下标的方式读取jQuery集合中第1个DOM元素,此时返回的是DOM对象,然后调用DOM属性innerHTML,读取该元素 包含的文本信息
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- JAVA 16进制转ASCII -- 2018年5月25日 周五
/** * 16进制转ASCII * * @param hex * @return */ public static String hex2Str(String hex) { StringBuilde ...
- delphi控制本计算机和远程计算机关机等
unit mainunit; {远程关机源码} interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Con ...
- Android文档 学习目录
Building Your First App After you've installed the Android SDK, start with this class to learn the b ...
- Scrapyd 的远程部署和监控
1. 安装Scrapyd sudo pip3.6 install scrapyd # 安装scrapyd服务 sudo pip3.6 install scrapyd-client # 安装scrapy ...
- Python基础学习Day7 基础数据类型的扩展 集合 深浅copy
一.基础数据类型的扩展 1.1GBK ---> UTF - 8 # str --->bytes s1 = '太白' # 字符串是unicode编码 b1 = s1.encode('gbk' ...