我有一个像
这样的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.
}
}
是否无法将配置值注入此类?这里发生了什么?我原以为它至少有默认值,但它什么都没有。
答案 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意识到它。