场景
在使用Spring Boot框架时,很经常会使用到拦截器。可是,有时候我们会遇到在拦截器使用@Value注解来获取配置文件中的配置参数获取失败,一直都是为null的情况。
1,直接new 拦截器(获取application.yml配置值为null)
正是这种配置方式导致在拦截器中使用@value为null
2,正确的配置方式如下:
@Bean注解不要忘记了
这种配置方式,区别就是将之前手动new出来的拦截器,转换成通过@Bean注解创建的形式登记到拦截器登记中心中
结论
如果通过手动new出来的对象登记上去,那么这个对象就不由spring管理。而通过@Bean注解,将该对象放到spring的Ioc容器中管理,那么该对象才可以使用spring的注解@Value来获取配置信息。