


Introduction to the method of interceptor injecting beans in SpringBoot (code example)
The content of this article is an introduction to the method of injecting Bean by SpringBoot interceptor (code example). It has certain reference value. Friends in need can refer to it. I hope it will be helpful to you.
Due to business needs, the Redis cache needs to be operated in the interceptor. According to the controller and service layer configuration, it is found that it cannot be injected, and a null pointer exception is always reported.
Solution
@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); } }
Interceptor:
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 { } }
Query reason
The interceptor is executed in the Bean This problem occurs before initialization. The execution order of each element in web.xml is as follows, context-param-->listener-->filter-->servlet; and the interceptor is configured in Spring MVC. If you look at the entire project , the execution process of a servlet request becomes like this context-param-->listener-->filter-->servlet-->interceptor, why the interceptor is after the servlet is executed, because the interceptor itself is Inside the servlet.
Concept
Servlet: A servlet is a java application that runs on the server side, is platform- and protocol-independent, and can be dynamic Generating web pages, it works in the middle layer between client requests and server responses.
filter: filter is a reusable code fragment that can be used to transform HTTP requests, responses and header information. Filter is not like Servlet, it cannot generate a request or response, it only modifies the request for a certain resource, or modifies the response from a certain resource.
listener: Listener, literally it can be seen that listener is mainly used for listening. Through the listener, you can monitor an execution action in the web server and respond accordingly according to its requirements. In layman's terms, it is a functional component that automatically executes code when the application, session, and request objects are created and destroyed or when attributes are added, modified, or deleted.
interceptor: The interceptor is a more detailed application of the filter. It can be applied not only before and after the service method but also before and after the interceptor of other methods.
The above is the detailed content of Introduction to the method of interceptor injecting beans in SpringBoot (code example). For more information, please follow other related articles on the PHP Chinese website!

The article discusses using Maven and Gradle for Java project management, build automation, and dependency resolution, comparing their approaches and optimization strategies.

The article discusses creating and using custom Java libraries (JAR files) with proper versioning and dependency management, using tools like Maven and Gradle.

The article discusses implementing multi-level caching in Java using Caffeine and Guava Cache to enhance application performance. It covers setup, integration, and performance benefits, along with configuration and eviction policy management best pra

The article discusses using JPA for object-relational mapping with advanced features like caching and lazy loading. It covers setup, entity mapping, and best practices for optimizing performance while highlighting potential pitfalls.[159 characters]

Java's classloading involves loading, linking, and initializing classes using a hierarchical system with Bootstrap, Extension, and Application classloaders. The parent delegation model ensures core classes are loaded first, affecting custom class loa


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

WebStorm Mac version
Useful JavaScript development tools

Zend Studio 13.0.1
Powerful PHP integrated development environment

DVWA
Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

Atom editor mac version download
The most popular open source editor

Dreamweaver CS6
Visual web development tools