@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 {
@Bean
public 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 { @Autowired
private JwtProperty jwtProperty;
在 构造JwtFilter时,作为参数传入构造函数
new JwtFilter(jwtProperty)
则,在 JwtFilter对象中就可以使用相关的配置信息了
@Value()读取配置文件属性,读出值为null的问题的更多相关文章
- java读取配置文件属性
在项目开发过程中,有时需要将其中用到的变量值在一个文件中统一管理,首先我选到了config.properties文件:下面这个代码是用于读取其中的变量值的类: package com.modem.te ...
- springboot @Configuration配置类里面使用@Value获取不到.yml配置文件属性的值
之前一个项目里面分为很多子工程的那种结构,要求让我改成一个项目的结构.我这边手动将代码合并之后出现下面的这种问题,然后尝试进行用各种方式解决 Error creating bean with name ...
- SpringBoot基础学习(二) SpringBoot全局配置文件及配置文件属性值注入
全局配置文件 全局配置文件能够对一些默认配置值进行修改.SpringBoot 使用一个名为 application.properties 或者 application.yaml的文件作为全局配置文件, ...
- Spring 中 Xml配置文件属性的说明
Xml配置文件属性的说明: <bean id="TheAction" ⑴ class="net.xiaxin.spring.qs.UpperAction" ...
- NameValueCollection类读取配置信息
C#中的NameValueCollection类读取配置信息,大家可以参考下. 我首先介绍配置文件中的写法: 1.在VS2015中的工程下建立一个控制台应用程序,其config文件默认名称为App ...
- Spark读取配置(转)
转自:https://github.com/keepsimplefocus/spark-sourcecodes-analysis/blob/master/markdowns/Spark%E8%AF%B ...
- Xml配置文件属性的说明
Xml配置文件属性的说明: <bean id="TheAction" ⑴ class="net.xiaxin.spring.qs.UpperAction" ...
- 读取配置和动态配置(C方法)
读取配置 无论何种配置文件,定义了配置文件之后,都统一使用系统提供的C方法(可以借助Config单词来帮助记忆)来读取已有的配置.用法:C('参数名称') 例如,读取当前的URL模式配置参数:$mod ...
- RootKit随手记(一)RootKit的驱动隐藏、读取配置、卸载安装
边学习边更新这专题,随手记录一下用到的思路,给自己看的(所以读者看可能有些懵,不好意思...) RootKit随手记(一)RootKit的驱动隐藏.读取配置.卸载安装 一.驱动隐藏 1. 隐藏原理 一 ...
随机推荐
- 关于js里的布尔值判断
第一种if(a)a为以下值时转换为false false undefined null 0 -0 NaN ""
- webpack中环境变量的使用方法
这节课讲解一下,在webpack打包过程中,怎么去使用一些环境变量. 首先我有一个打包配置的三个文件 "scripts": { "dev-build": &qu ...
- 机器学习中的数学-强大的矩阵奇异值分解(SVD)及其应用
版权声明: 本文由LeftNotEasy发布于http://leftnoteasy.cnblogs.com, 本文可以被全部的转载或者部分使用,但请注明出处,如果有问题,请联系wheeleast@gm ...
- 如何查看JVM的内存
学过java的人都知道,jvm是解释运行java的,java能够作为跨平台语言,也是因为jvm的存在,合理的使用jvm内存可以帮助程序很好的运行.那么,怎么查看jvm的内存使用情况呢,下面本文介绍一下 ...
- SpringMVC利用AOP实现自定义注解记录日志
作者:飞翔的拖鞋up 推荐:彻底征服 Spring AOP 之 实战篇 推荐:jason_zhangz 本文抛砖引玉,并没有详细的介绍更全面的内容,通过一个例子让初次使用的人能够快速入门,简单的介绍一 ...
- Mybatis各种查询
实体Emp private int empno; private String ename; private String job; private Integer mgr; private Date ...
- Java8-Executors-No.03
import java.util.Arrays; import java.util.List; import java.util.concurrent.Callable; import java.ut ...
- Java8-Lambda-No.02
public class Lambda2 { @FunctionalInterface public static interface Converter<F, T> { T conver ...
- jmeter+ant+jenkins搭建自动化测试环境(基于linux)
安装CentOS7操作系统 关闭系统防火墙 [root@localhost ~]# systemctl stop firewalld.service [root@localhost ~]# syste ...
- Codeforces Round #585 (Div. 2) A. Yellow Cards(数学)
链接: https://codeforces.com/contest/1215/problem/A 题意: The final match of the Berland Football Cup ha ...