HandlerInterceptorAdaper中的Spring Boot Value注释

时间:2017-11-30 14:24:28

标签: spring spring-boot

我有一个像

这样的HandlerInterceptorAdapter
@Component
public class TestInterceptor extends HandlerInterceptorAdapter{

    @Value("${thing:defaultValue}")
    private String thing;

    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse  response,
                             Object handler) throws Exception {

        // Do something with thing, but thing is null.

    }
}

是否无法将配置值注入此类?这里发生了什么?我原以为它至少有默认值,但它什么都没有。

1 个答案:

答案 0 :(得分:0)

您需要确保Spring实际实例化Component:)

所以,就像

一样
@Configuration
public class InterceptorConfig extends WebMvcConfigurerAdapter {
    @Autowired
    TestInterceptor test;

    @Override
    public void addInterceptors(InterceptorRegistry registry){
        InterceptorRegistration testreg = registry.addInterceptor(test);
        // ...
    }
}

通过将其自动装入配置器,它使Spring意识到它。