Dieses Projekt ist ein Maven -Projekt, das auf dem Springboot -Framework basiert.
Bei der Behandlung von Interceptor -Logik in einem Interceptor müssen Sie heute andere Methoden mit Annotationen aufrufen und Parameter aus der Konfigurationsdatei lesen. Also habe ich die folgende Annotation verwendet:
@Reference CoredisService Redisserservice; @Value ("$ {Kanal}") privater String -Kanal; @Value ("$ {degoTMethod}") private String erlaubtenMethod; Einer besteht darin, den Verweis auf die Schnittstelle zu erhalten. Zwei weitere zwei sind die Parameter in der Konfigurationsdatei.
Während des Debugging -Prozesses stellte ich jedoch fest, dass keiner der drei injiziert wurde und die in der folgende Abbildung gezeigte Situation aufgetreten ist:
Sie können sehen, dass alle drei Werte null sind.
Ich habe dann die Konfiguration meines Projekts angesehen, um festzustellen, ob die Position des Interceptors im Rahmen der Annotation liegt. Ich fand kein Problem. Ich fand ein Problem bei Baidu und fand ein Problem: Die Zeit, in der der Interceptor -Lasten vor Springcontext ist und natürlich in den Interceptor injiziert wird.
Gemäß der Lösung wird der Interceptor zuerst in die Klasse injiziert, die die Interceptor -Kette konfiguriert. Der Code ist wie folgt:
Paket com. ***; import org.springframework.context.annotation.bean; import org.springframework.context.annotation org.springframework.web.servlet.config.annotation.webmvcconFigurerAdapter;/*** configurationInterceptorChain* Erstellt von YEfuliang am 2017/10/23. */ @ConfigurationPublic class BGQWebAppConFigurer erweitert webmvcconFigurerAdapter {@Bean public bgQcommonInterceptorl BGQCommonInterceptorl () {Neue BGQCommonInterceptorl () zurückgeben; } public void addInterceptors (InterceptorRegistry -Registrierung) {// Mehrere Interceptors bilden eine Interceptor -Kette // AddPathPatterns werden verwendet, um Interceptor -Regeln hinzuzufügen // Ausschluss von Benutzerausschlüssen Intercept -Registrierung. Super.AdDInterceptors (Registrierung); }} Beachten Sie, dass die injizierte Interceptor -Klasse, nicht die Klasse, die Sie in den Interceptor injizieren möchten, und dann die Registrierung der Interceptor -Kette.
Sie müssen den ersten Parameter darin nicht neu nieren.
Nachdem die Modifikation korrigiert wurde, debugg:
Wie Sie sehen können, werden alle in sie injiziert und das Problem wird gelöst.
Das obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, es wird für das Lernen aller hilfreich sein und ich hoffe, jeder wird Wulin.com mehr unterstützen.