@Value 读取配置文件问题

news/2025/2/26 15:07:09/文章来源:https://www.cnblogs.com/yizhouiqpl/p/18738527

通过 @Value注解 读取到的配置文件内容,是不能够在静态方法里面使用的。除非是静态属性。但是静态属性@Value注解又会失效,读取不到该怎么办呢?

通过 @PostConstruct 注解或者 @Autowired注解来操作,具体方法如下代码:

@Component
public class AesUtil {@Value("${business.zlgk.aeskey}")private String aeskey;private static String encodeRules;//    @PostConstruct // 译为:后构造注解@Autowiredpublic void setEncodeRules() {encodeRules = this.aeskey;}
....使用 encodeRules ....}

上面两个注解经过测试都是可以的,但是不要忘记了@Component 注解,这是为什么呢?
我的理解:两个方面

  • @Autowired是属于springframework的,@PostConstruct是属于javax的;都需要依赖Spring容器所以要配合着@Component注册到容器;
  • private static String encodeRules; 我们需要的参数encodeRules是一个静态属性,静态属性在程序开始的时候加载并初始化。而它加载的时候这个工具类没有被注册到容器里面,也就是 setEncodeRules() 方法,这个时候赋值肯定是空的。
    优化上面的代码:
@Component
public class AesUtil {private static String encodeRules;@Value("${business.zlgk.aeskey}")public void setEncodeRules(String encodeRules) {AesUtil.encodeRules = encodeRules;}
....使用 encodeRules ....
}

理解同上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/890126.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MySQL之navicat使用

1、下载navicat 包2、解压 3、找到navicat.exe 4 .密钥:NAVH-WK6A-DMVK-DKW3 5、查看ip地址6、关闭防火墙:ervice iptables stop7、连接配置编写 8、点击确定连接,显示如下 9、打开查询中,新建查询10、解决问题: 注意点:如果连接不上 1、关闭防火墙 service iptables …

Powershell实现圆缩小放大 (实时刷新窗口)

使用Powershell,创建实时刷新的窗口,绘制图形,这里以圆作为例子,做缩小放大动画。【分析】 Powershell是windows内置的自动部署平台,功能强大在于可以调取.net框架,因此,即使没有Opengl加持,也可以创建实时刷新的窗口。可以调用windows.Form程序集创建窗口,然后调用Sy…

LGP8125 [BalticOI 2021] The short shank 学习笔记

LGP8125 [BalticOI 2021] The short shank 学习笔记 Luogu Link 题意简述 有一列 \(N\) 个元素,第 \(i\) 个元素初始值 \(t_i\),而后会被更新为 \(\min_{j=lb=1}^{rb=i} t_j+(i-j)\)。现在给你 \(D\) 个隔板,如果在第 \(i\) 个和第 \(i+1\) 个之间放置,则有效果:\(\forall…

PPO和GRPO算法详解(持续更新中)

PPO 众所周知,PPO在LLM应用下, t时刻下,State就变成了query+output(<t) Reference是初始模型,举个例子可以认为是deepseek V3+SFT之后的模型,是不变的,是fozen model 从头开始推导一次: t0时刻:query输入到policy model里面,生成一个token,记为o1Reeference model…

ATR143B Counting Grids 学习笔记

ATR143B Counting Grids 学习笔记 Luogu Link 题意简述 现在需要将 \(1\sim n^2\) 共 \(n^2\) 个整数填进网格 \(S\)。定义一种方案合法当且仅当不存在 \(S_{i,j}\) 满足: \[\max_{k=1}^n S_{i,k}=\min_{k=1}^n S_{k,j}=S_{i,j} \]。问合法方案数,答案对 \(998244353\) 取模。…

win11解决任务栏卡死问题

1、以管理员方式启动 windows PowerShell 2、执行代码 Get-AppXPackage -AllUsers | Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"} sfc /scannow出现下面信息重启电脑即可。

轻松搞定电脑文件对比,BeyondCompare

点击上方蓝字关注我 前言 Beyond Compare 是一种文件比较工具。把选中的文件夹或文件并排展示两个窗口,可以使用不同筛选查看文件夹信息。 可以查看所有文件、匹配的文件、不匹配的文件等,根据不同的颜色来区别以便轻松辨识。通过其他功能还包括二进制文件的快速比较、文件和…

BUUCTF-PWN-ciscn_2019_c_1

这道题又是新的题型,研究了以下,要好好记录下来。 首先是看程序开启了哪些保护:发现没开启栈溢出保护,我们继续往下看程序的逻辑:一个简洁的页面,到此为止我们并不能看出可以利用哪些攻击方式,我们跟踪一下函数encrypt和begin发现begin只是一个简单的显示程序,而重点在…

Windows API 学习~

Win32~用api 创建一个Windows 窗口 windows窗口创建过程 Windows API 索引 - Win32 apps | Microsoft Learn 创建项目 ​ 配置属性,系统里面子系统选择窗口 ​ ‍注册窗口类: 首先需要调用RegisterClassEx 函数来注册一个窗口类,该函数会向操作系统注册一个新的窗口类, 并返…

个人开发者神器:5款高效的项目管理工具推荐

作为个人开发者,高效的项目管理是确保工作顺利进行的关键。在众多的项目管理工具中,轻量级的 APP 因其便捷性和实用性备受青睐。本文将为您推荐 5 款个人开发者的神器——轻量级项目管理 APP,帮助您提升工作效率,更好地实现项目目标。 禅道项目管理软件 禅道是一款专业且开…

drawio使用阿里云最新图标

简介 draw.io是一款免费的在线绘图工具,可用于创建各种类型的图表、流程图、组织结构图、网络拓扑图等。它具有易于使用的直观界面和丰富的图形库,支持与Google Drive、OneDrive、Dropbox等云存储服务集成。用户可以直接在浏览器中使用draw.io,也可以将其安装为Chrome应用程…

VulnHub-DC-6靶机-wpscan爆破+命令注入反弹shell+nmap提权

一、环境搭建 选择扫描虚拟机选择靶机路径这里如果出现报错,无法导入,如VMware出现配置文件 .vmx 是由VMware产品创建,但该产品与此版 VMware workstation 不兼容,因此无法使用(VMware版本不兼容问题),可以修改.vmx文件版本和虚拟机一致二、信息收集 扫描ip nmap -sn 19…