Spingboot中在攔截器攔截方法,操作後,報空指針異常,HandlerExecutionChain類錯誤。

問題敘述:

寫了一個攔截器,在某個方法之後,操作下數據庫,但操作數據庫的時候報空指針異常。追究方法是HandlerExecutionChaintriggerAfterCompletion()出錯。翻閱資料,發現是注入方式有問題。

原代碼

/**
 * 系統中的攔截器配置
 * @author gaoxupeng
 */
@Configuration
public class InterceptorConfigurer extends WebMvcConfigurerAdapter {
    
    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // addPathPatterns 用於添加攔截規則
        // excludePathPatterns 用於排除攔截
        // 地址攔截器
        registry.addInterceptor(new SessionInterceptor()) //注意此處,這裏寫法無法注入bean
                .addPathPatterns("/bpm/task/doAction");
        super.addInterceptors(registry);
    }

}

修正後

/**
 * 系統中的攔截器配置
 * @author gaoxupeng
 */
@Configuration
public class InterceptorConfigurer extends WebMvcConfigurerAdapter {

    @Bean  //這裏用@Autowired應該也可行,不過我沒有測試
    public SessionInterceptor getSessionInterceptor(){
        return new SessionInterceptor();
    }

    @Override
    public void addInterceptors(InterceptorRegistry registry) {
        // addPathPatterns 用於添加攔截規則
        // excludePathPatterns 用於排除攔截
        // 地址攔截器
        registry.addInterceptor(getSessionInterceptor())
                .addPathPatterns("/bpm/task/doAction");
        super.addInterceptors(registry);
    }

}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章