@Value()读取配置文件属性,读出值为null的问题
一、问题描述
自定义一个Filter如下:
@Component
public class JwtFilter extends GenericFilterBean{@Value("${jwt.header}")private String header; //此处无法注入 值为 null
在config中将此filter注册给spring
@Configuration
@AutoConfigureAfter(JwtFilter.class)
public class JwtConfig {@Beanpublic FilterRegistrationBean jwtFilter() {final FilterRegistrationBean registrationBean = new FilterRegistrationBean();registrationBean.setFilter(new JwtFilter()); //率先执行String[] paths = jwtProperty.getCheckPath().split(",");for (String p : paths){registrationBean.addUrlPatterns(p);System.out.println(p);}return registrationBean;}
}
原因:执行顺序问题,config率先执行,new JwtFilter()会构造一个filter对象交给spring,而此时 @Value还未读取配置,所以在JwtFilter中的 @Value值为 null。
解决方法: 使用一个类来读取配置
@Component
@Data
public class JwtProperty {@Value("${jwt.header}")private String header;@Value("${jwt.tokenHead}")private String tokenHead;@Value("${jwt.secret}")private String secret;@Value("${jwt.checkPath}")private String checkPath;@Value("${jwt.expiration}")private Integer expire;public JwtProperty() {}
}
然后将其注入到config中
@Configuration
public class JwtConfig {@Autowiredprivate JwtProperty jwtProperty;
在 构造JwtFilter时,作为参数传入构造函数
new JwtFilter(jwtProperty)
则,在 JwtFilter对象中就可以使用相关的配置信息了
@Value()读取配置文件属性,读出值为null的问题相关推荐
- Spring Boot 如何正确读取配置文件属性
前言 项目中经常会经常读取配置文件中的属性的值,Spring Boot提供了很多注解读取配置文件属性,那么如何正确使用呢? @Value @Value用来读取application.yml配置文件中属 ...
- php+读取配置里的值,ThinkPHP 读取配置信息与动态配置(C方法)
ThinkPHP C 方法 C 方法是 ThinkPHP 内置的特殊方法,用于在操作和模板里读取配置文件里的配置信息或者动态配置参数.语法如下: C( para_name, value ) 参数说明 ...
- springboot读取json文件_SpringBoot:配置文件属性读取
SpringBoot中默认加载的是application.properties或者application.yaml文件,当然也支持自定义的属性文件.我们可以在此文件中写一些自己想要的配置信息,然后在用 ...
- 创建前缀一样的文件_SpringBoot:配置文件属性读取
SpringBoot中默认加载的是application.properties或者application.yaml文件,当然也支持自定义的属性文件.我们可以在此文件中写一些自己想要的配置信息,然后在用 ...
- linux 重读环境变量,关于linux中使用source /etc/profile重新读取配置后,新的环境变量只能在当前终端里面有效,新开的终端提示 command not found...
文章目录 问题 知识点 问题分析及解决 补充 问题 在使用linux桌面环境(通常是ubuntu/debian/deepin等版本的linux)的时候,新增环境变量后,会使用source /etc/p ...
- lis3dh调试心得,读取正确的加速度值
最近在调试lis3dh加速度计,网上一搜能找到很多资料,但是描述正确的,感觉不是很多,所以这里我来总结一下,也是在网友博客的基础上将正确的地方集中整理一下. 1. 首先说驱动,驱动网上流传的基本上 ...
- springboot配置文件属性大全
springboot配置文件属性大全 1. application.yml参数 1. application.yml参数 #-------------------------------------- ...
- VS Code 配置调试参数、launch.json 配置文件属性、task.json 变量替换、自动保存并格式化、空格和制表符、函数调用关系、文件搜索和全局搜索、
1. 生成配置参数 对于大多数的调试都需要在当前项目目录下创建一个 lanch.json 文件,位置是在当前项目目录下生成一个 .vscode 的隐藏文件夹,在里面放置一些配置内容,比如:settin ...
- @value 数组_SpringBoot @Value 读取配置,太强大了!
Java技术栈 www.javastack.cn 关注优质文章 本文作者:Jitwxs 链接:www.jitwxs.cn/d6d760c4.html 一.前言 在日常开发中,经常会遇到需要在配置文件中 ...
最新文章
- “我被机器解雇了!”Amazon 63岁员工因算法评分太低被自动开除
- Delphi中的消息截获
- java joptionpanel_JOptionPane用法--java
- C#~异步编程续~.net4.5主推的awaitasync应用
- java绑定click时间_JAVA面试之vue.js(一)
- 视频课程-1小时上手 Spring Boot 及 达梦数据库 做数据展示后端
- 贪心算法之活动选择问题
- 惊喜不止小米9!小米又一4800万新机确认:不给友商机会?
- php 防止不登录进入后台,php后台如何避免用户直接进入方法实例
- linux nfs挂载域名,Linux系统挂载NFS的方法
- 指针数组 | 数组指针
- 在OpenSSL中添加自定义加密算法
- win7查看计算机设置密码,如何查看win7电脑开机密码_win7专业版电脑开机密码怎么查看...
- c语言计算定积分有几种方法,C语言用6种方法求定积分.doc
- jsGannt Improved 中文教程文档
- 李沐动手学深度学习V2-注意力评分函数
- vue-element-admin整合spring-boot实现权限控制之用户管理篇
- CodeBlocks安装汉化与使用说明
- Hadoop的介绍以及发展历史
- html怎么做小米logo,CSS3:一个标签画LOGO——小米