首页 > 编程语言 > 详细

Spring拦截器中@Value无效的解决办法

时间:2019-06-19 23:02:07      阅读:347      评论:0      收藏:0      [点我收藏+]

最近在使用SpringBoot开发项目时,用到了SpringMVC拦截器的功能。鉴于SpringBoot指南中建议使用Java Config的配置方式,拦截器的配置也不例外,从原先的xml配置方式转为了Java Config。

首先贴出拦截器的一种配置方式:

1 @Configuration
2 public class WebMvcConfig extends WebMvcConfigurerAdapter {
3   @Override
4     public void addInterceptors(InterceptorRegistry registry) {
5         super.addInterceptors(registry);
6 
7         registry.addInterceptor(new LogInterceptor()).addPathPatterns("/**");
8     }
9 }

上面的拦截器配置在网上搜索一下,也是随处可见的。拦截器可以正常运作,但是拦截器中@Value注解的属性值为null,没有读取到期望的properties文件中的值。

再看拦截器的另一种配置方式:

 1 @Configuration
 2 public class WebMvcConfig extends WebMvcConfigurerAdapter {
 3   @Bean
 4   public LogInterceptor logInterceptor() {
 5     return new LogInterceptor();
 6   }
 7 
 8   @Override
 9     public void addInterceptors(InterceptorRegistry registry) {
10         super.addInterceptors(registry);
11 
12         registry.addInterceptor(logInterceptor()).addPathPatterns("/**");
13     }
14 }

如果按照上面的配置方式,@Value注解可以成功注入properties文件中的属性值。

思考:第一种方式中,拦截器是手动new出来的,拦截器中的依赖注入并未得到处理;第二种方式,同样是new出来的拦截器,但通过@Bean的声明,表明拦截器是Spring管理的bean,依赖注入工作自然Spring会做处理。

本篇博客的内容源自:https://my.oschina.net/angerbaby/blog/687582?p=1 博客

Spring拦截器中@Value无效的解决办法

原文:https://www.cnblogs.com/maigy/p/11055418.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!