このプロジェクトは、Springboot Frameworkに基づいたMavenプロジェクトです。
今日、インターセプターでインターセプターロジックを処理するときは、注釈を使用して他のメソッドを呼び出し、構成ファイルからパラメーターを読み取る必要があります。だから私は次の注釈を使用しました:
@Reference CorereDisservice Redisservice; @value( "$ {Channel}")プライベート文字列チャンネル。 @value( "$ {approwmethod}")private string alpodmethod; 1つはインターフェイスへの参照を取得することです。他の2つの2つは、構成ファイルにパラメーターを取得することです。
ただし、デバッグプロセス中に、3つのいずれも注入されておらず、次の図に示されている状況が発生したことがわかりました。
3つの値すべてがnullであることがわかります。
次に、プロジェクトの構成を検討して、インターセプターの位置が注釈の範囲内であるかどうかを判断しました。問題はありませんでした。 Baiduで問題を発見し、問題を発見しました。インターセプターの荷重がSpringContextの前にある時期であるため、自然にnullがインターセプターに注入されます。
ソリューションによると、インターセプターは最初にクラスに注入され、インターセプターチェーンを構成します。コードは次のとおりです。
パッケージcom org.springframework.web.servlet.config.annotation.webmvcconfigureradapter;/*** configurationInterceptorChain* 2017/10/23にYefuliangによって作成されました。 */ @configurationPublic class bgqwebappconfigurerはwebmvcconfigureradapterを拡張します{@bean public bgqcommoninterceptorl bgqcommoninterceptorl(){return new bgqcommoninterceptorl(); } public void addInterceptors(interceptorregistry registry){//複数のインターセプターフォームインターセプターチェーン// addpathpatternsは、インターセプタールールを追加するために使用されます。 Super.AddDINTERCEPTORS(レジストリ); }}注入されたのはインターセプタークラスであり、インターセプターに注入するクラスではなく、インターセプターチェーンのレジストリ(bgqcommonInterceptorl())。
最初のパラメーターを再送信する必要はありません。
変更が修正された後、デバッグ:
ご覧のとおり、すべてが注入され、問題は解決されます。
上記はこの記事のすべての内容です。みんなの学習に役立つことを願っています。誰もがwulin.comをもっとサポートすることを願っています。