問題敘述:
寫了一個攔截器,在某個方法之後,操作下數據庫,但操作數據庫的時候報空指針異常。追究方法是HandlerExecutionChain
的triggerAfterCompletion()
出錯。翻閱資料,發現是注入方式有問題。
原代碼
@Configuration
public class InterceptorConfigurer extends WebMvcConfigurerAdapter {
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(new SessionInterceptor())
.addPathPatterns("/bpm/task/doAction");
super.addInterceptors(registry);
}
}
修正後
@Configuration
public class InterceptorConfigurer extends WebMvcConfigurerAdapter {
@Bean
public SessionInterceptor getSessionInterceptor(){
return new SessionInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
registry.addInterceptor(getSessionInterceptor())
.addPathPatterns("/bpm/task/doAction");
super.addInterceptors(registry);
}
}