Java使用@Value获取不到值
场景: 工具类单例模式,实例化时根据不同环境从.properties或.yml中动态取值
问题解析: Java 中 static/final 修饰的变量,通过 @Value 是获取不到值的
解决方案:
- 在变量 setter方法上使用 @Value
package com.xx.utils.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class AConfig {public static String url;public static String appkey;@Value("${xxx.url}")public void setUrl(String url) {AConfig.url = url;}@Value("${xxx.appkey}")public void setAppkey(String appkey) {AConfig.appkey = appkey;}
}
- 中间非静态变量赋值
package com.xx.utils.config;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;
@Component
public class AConfig {public static String url;@Value("${xxx.url}")private String url1;public static String appkey;@Value("${xxx.appkey}")private String appkey1;@PostConstructpublic void init() {url = url1;appkey = appkey1;}
}
总结: 两种解决方案都是间接的通过非 static 的变量获取到值,从而拿到配置文件中的值;但两种方法中都需要在类上加上@Component。
Java使用@Value获取不到值相关推荐
- java enum getname_Java获取给定Enum值的Enum名称
Java获取给定Enum值的Enum名称 给定值,如何获取Java Enum类型的名称? 我有以下适用于特定Enum类型的代码,我可以使其更通用吗? public enum Category { AP ...
- java中怎么获取配置文件的值_java如何获取配置文件的值
转: 原创 编码小王子 发布于2018-10-11 18:07:52 阅读数 2722 收藏 展开 java大型项目中都会很多系统常量,比如说数据库的账号和密码,以及各种token值等,都需要统一的管 ...
- java hashmap 随机_有没有办法在Java中随机获取HashMap的值?
你可以使用像: Random generator = new Random(); Map.Entry[] entries = myHashMap.entrySet().toArray(); rando ...
- Java获取图片RGB值
前言 图片对比获取坐标的方法很多,我选择了比较简单的方法:对比rgb值.要想对比rgb值,就得先获取图片的rgb值.运用的是BufferedImage里的getRGNB方法. 解决方案 首先用.get ...
- JAVA中获取文件MD5值的四种方法
JAVA中获取文件MD5值的四种方法其实都很类似,因为核心都是通过JAVA自带的MessageDigest类来实现.获取文件MD5值主要分为三个步骤,第一步获取文件的byte信息,第二步通过Messa ...
- java求30度的正弦值_获取Java中给定值的双曲正弦值
为了获取Java中给定值的双曲正弦值,我们使用java.lang.Math.sinh()方法.该sinh()方法接受一个以弧度为单位的参数,并返回该参数的双曲正弦值作为角度. 声明-java.lang ...
- Java如何遍历获取对象中的所有属性和值
当我们需要对对象的所有值进行遍历的时候,依次进行get.set方法非常的麻烦,这个时候我们就会用到对象属性和值的遍历,应用代码如下 // voucher是目标对象 try{//通过getDeclare ...
- java高效获取内部类属性值_Java高级特性:内部类
内部类是什么 内部类是指在一个外部类的内部再定义一个类.内部类作为外部类的一个成员,并且依附于外部类而存在的.内部类可为静态,可用protected和private修饰(而外部类只能使用public和 ...
- Java 获取文件md5值校验文件
假如我们想校验两个文件网络传输中是否改变了,或者校验两个文件是否一致可以使用md5校验. 代码: import java.io.FileInputStream; import java.io.Inpu ...
最新文章
- 手绘风格的数据可视化 Sketchify,让你的图表也萌萌哒
- Spring相关API-getBean()方法的使用
- 软工实践项目课程的自我目标
- @codeforces - 786E@ ALT
- 《TensorFlow 2.0深度学习算法实战教材》学习笔记(五、神经网络)
- Capture One如何创建和应用样式和预设?
- 陈纪修老师《数学分析》 第04章:微分 笔记
- 光伏并网系统的谐波分析
- ae批量修改字体_AE脚本pt_TextEdit v2.5批量修改文字图层样式字体大小属性编辑工具...
- 计算机管理员没有权限删除,答疑:没有管理员权限,无法删除文件?-删除文件...
- Word文件没有保存怎么找回来?恢复文件
- Eighth Week's ARST
- c++小游戏 走迷宫
- 【离散数学】平凡子群
- 论文解读:预测lncRNA的相互作用生物分子类型:一种集成深度学习方法
- 无人驾驶感知篇之传感器标定(二)
- 06 java GUI 网络编程:图形界面聊天室
- ZT:【ROOT教程】S7/S7E 8890版root及替换recovery中文教程
- 黄河科技学院计算机等级考试成绩查询,全国计算机等级考试成绩查询汇总
- 2018年中国光学镜头行业发展现状及发展趋势分析【图】
热门文章
- 哔哩哔哩2021校招末班车来了!
- H3C无线AC+AP配置2—有密码登录
- UWB的定位算法(简单详细易懂)
- TOP 1比不加TOP慢的疑惑
- 南京大学《软件分析》课程课后作业(非Bamboo)
- a360desktop有用吗_A360 Desktop 停用 - 2018 年 6 月 19 日
- Java图形化界面编程超详细知识点(10)——Swing_表格
- C语言标题下面程序用于输入三角形的三条边a,b,c,判断它们能否构成三角形,若能,则指出是何种三角形:等腰三角形、直角三角形、等腰直角三角形,一般三角形。若不能,则输出“不是三角形\n”
- 优达学城 深度学习 任务1
- m语言 东华his_M语言