この記事の内容は、SpringBoot インターセプターによる Bean の注入方法 (コード例) の紹介です。必要な方は参考にしていただければ幸いです。
ビジネス上のニーズにより、Redis キャッシュをインターセプターで操作する必要があります。コントローラーとサービス層の構成によれば、キャッシュを注入できないことが判明し、常に null ポインター例外が報告されます。
解決策
@Configuration public class MyWebAppConfigurer extends WebMvcConfigurerAdapter { /** * 将自定义拦截器作为Bean写入配置 * @return */ @Bean public SysInterceptor sysInterceptor() { return new SysInterceptor(); } /** * 对拦截器注册 */ @Override public void addInterceptors(InterceptorRegistry registry) { String[] patterns = new String[] {"/swagger-resources/**"}; registry.addInterceptor(sysInterceptor()) .addPathPatterns("/**") .excludePathPatterns(patterns); super.addInterceptors(registry); } }
インターセプタ:
public class SysInterceptor implements HandlerInterceptor { private static final Logger logger = LoggerFactory.getLogger(SysInterceptor.class); @Autowired private RedisTemplate<String, String> redisTemplate; @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { //业务逻辑 return true; } @Override public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler, ModelAndView modelAndView) throws Exception { } @Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) throws Exception { } }
クエリ理由
インターセプタはBean内で実行されます。この問題は初期化前に発生します。 web.xml の各要素の実行順序は context-param-->listener-->filter-->servlet; となっており、Spring MVC ではインターセプタが設定されています。サーブレット リクエストの実行プロセスは次のようになります。 context-param-->listener-->filter-->servlet-->interceptor。なぜインターセプタがサーブレットの実行後にあるのかというと、インターセプタ自体が内部にあるためです。サーブレット。
概念
サーブレット: サーブレットはサーバー側で実行される Java アプリケーションであり、プラットフォームやプロトコルに依存せず、次のことができます。 Web ページを動的に生成する場合、クライアントのリクエストとサーバーの応答の間の中間層で機能します。
filter: フィルターは、HTTP リクエスト、レスポンス、およびヘッダー情報を変換するために使用できる再利用可能なコード フラグメントです。サーブレットとは異なり、フィルターはリクエストやレスポンスを生成できません。特定のリソースに対するリクエストを変更するか、特定のリソースからのレスポンスを変更するだけです。
listener: リスナー、文字通り、リスナーは主にリスニングに使用されることがわかります。リスナーを通じて、Web サーバーの実行アクションを監視し、その要件に従って応答できます。平たく言えば、アプリケーション、セッション、リクエストのオブジェクトが作成および破棄されるとき、または属性が追加、変更、または削除されるときに、コードを自動的に実行する機能コンポーネントです。
インターセプター: インターセプターは、フィルターのより詳細な適用です。サービス メソッドの前後だけでなく、他のメソッドのインターセプターの前後にも適用できます。
以上がSpringBootインターセプタによるBean注入方法の紹介(コード例)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

Canal工作原理Canal模拟MySQLslave的交互协议,伪装自己为MySQLslave,向MySQLmaster发送dump协议MySQLmaster收到dump请求,开始推送binarylog给slave(也就是Canal)Canal解析binarylog对象(原始为byte流)MySQL打开binlog模式在MySQL配置文件my.cnf设置如下信息:[mysqld]#打开binloglog-bin=mysql-bin#选择ROW(行)模式binlog-format=ROW#配置My

前言SSE简单的来说就是服务器主动向前端推送数据的一种技术,它是单向的,也就是说前端是不能向服务器发送数据的。SSE适用于消息推送,监控等只需要服务器推送数据的场景中,下面是使用SpringBoot来实现一个简单的模拟向前端推动进度数据,前端页面接受后展示进度条。服务端在SpringBoot中使用时需要注意,最好使用SpringWeb提供的SseEmitter这个类来进行操作,我在刚开始时使用网上说的将Content-Type设置为text-stream这种方式发现每次前端每次都会重新创建接。最

一、手机扫二维码登录的原理二维码扫码登录是一种基于OAuth3.0协议的授权登录方式。在这种方式下,应用程序不需要获取用户的用户名和密码,只需要获取用户的授权即可。二维码扫码登录主要有以下几个步骤:应用程序生成一个二维码,并将该二维码展示给用户。用户使用扫码工具扫描该二维码,并在授权页面中授权。用户授权后,应用程序会获取一个授权码。应用程序使用该授权码向授权服务器请求访问令牌。授权服务器返回一个访问令牌给应用程序。应用程序使用该访问令牌访问资源服务器。通过以上步骤,二维码扫码登录可以实现用户的快

1.springboot2.x及以上版本在SpringBoot2.xAOP中会默认使用Cglib来实现,但是Spring5中默认还是使用jdk动态代理。SpringAOP默认使用JDK动态代理,如果对象没有实现接口,则使用CGLIB代理。当然,也可以强制使用CGLIB代理。在SpringBoot中,通过AopAutoConfiguration来自动装配AOP.2.Springboot1.xSpringboot1.xAOP默认还是使用JDK动态代理的3.SpringBoot2.x为何默认使用Cgl

我们使用jasypt最新版本对敏感信息进行加解密。1.在项目pom文件中加入如下依赖:com.github.ulisesbocchiojasypt-spring-boot-starter3.0.32.创建加解密公用类:packagecom.myproject.common.utils;importorg.jasypt.encryption.pbe.PooledPBEStringEncryptor;importorg.jasypt.encryption.pbe.config.SimpleStrin

知识准备需要理解ApachePOI遵循的标准(OfficeOpenXML(OOXML)标准和微软的OLE2复合文档格式(OLE2)),这将对应着API的依赖包。什么是POIApachePOI是用Java编写的免费开源的跨平台的JavaAPI,ApachePOI提供API给Java程序对MicrosoftOffice格式档案读和写的功能。POI为“PoorObfuscationImplementation”的首字母缩写,意为“简洁版的模糊实现”。ApachePOI是创建和维护操作各种符合Offic

一、springboot与mybatis的配置1.首先,springboot配置mybatis需要的全部依赖如下:org.springframework.bootspring-boot-starter-parent1.5.1.RELEASEorg.springframework.bootspring-boot-starter-web1.5.1.RELEASEorg.mybatis.spring.bootmybatis-spring-boot-starter1.2.0com.oracleojdbc

1.首先新建一个shiroConfigshiro的配置类,代码如下:@ConfigurationpublicclassSpringShiroConfig{/***@paramrealms这儿使用接口集合是为了实现多验证登录时使用的*@return*/@BeanpublicSecurityManagersecurityManager(Collectionrealms){DefaultWebSecurityManagersManager=newDefaultWebSecurityManager();


ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

SublimeText3 英語版
推奨: Win バージョン、コードプロンプトをサポート!

MantisBT
Mantis は、製品の欠陥追跡を支援するために設計された、導入が簡単な Web ベースの欠陥追跡ツールです。 PHP、MySQL、Web サーバーが必要です。デモおよびホスティング サービスをチェックしてください。

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック



