@Configuration public class Interceptor implements WebMvcConfigurer { @Bean AuthorizationInterceptor getInterceptorRegistry(){ return new AuthorizationInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { // 多个拦截器组成一个拦截器链 // addPathPatterns 用于添加拦截规则 registry.addInterceptor(getInterceptorRegistry()) .addPathPatterns("/**") // excludePathPatterns 用户排除拦截 .excludePathPatterns("/upload"); //排除不需要拦截的路径 } }
时间: 2023-06-20 09:07:13 浏览: 113
这是一个 Java Spring Boot 的拦截器配置类,使用了@Configuration注解表明该类是一个配置类,实现了WebMvcConfigurer接口。该类中定义了一个名为getInterceptorRegistry的Bean,返回一个AuthorizationInterceptor对象。在addInterceptors方法中,将该拦截器添加到拦截器链中,并且设置了拦截规则,即拦截所有请求("/**"),排除了/upload路径不进行拦截。该拦截器的作用是在请求到达Controller层之前进行拦截,完成一些权限验证、日志记录等操作。
相关问题
解释下面代码@Configuration public class MybatisPlusConfig { @Bean public MybatisPlusInterceptor mybatisPlusInterceptor() { MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor(); interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL)); return interceptor; } }
这段代码是一个 Java 配置类,这里定义了一个 MybatisPlusConfig 类,通过注解 @Configuration 指示该类是一个配置类,用于配置 MybatisPlus 框架的拦截器。在类中定义了一个名为 mybatisPlusInterceptor 的 Bean,返回的是一个 MybatisPlusInterceptor 对象,该对象是 MybatisPlus 框架的拦截器,在其中添加了一个分页插件 PaginationInnerInterceptor,并指定数据库类型为 MySQL,用于处理分页查询。
package com.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.InterceptorRegistry; import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport; import com.interceptor.AuthorizationInterceptor; @Configuration public class InterceptorConfig extends WebMvcConfigurationSupport{ @Bean public AuthorizationInterceptor getAuthorizationInterceptor() { return new AuthorizationInterceptor(); } @Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(getAuthorizationInterceptor()).addPathPatterns("/**").excludePathPatterns("/static/**"); super.addInterceptors(registry); } /** * springboot 2.0配置WebMvcConfigurationSupport之后,会导致默认配置被覆盖,要访问静态资源需要重写addResourceHandlers方法 */ @Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/**") .addResourceLocations("classpath:/resources/") .addResourceLocations("classpath:/static/") .addResourceLocations("classpath:/admin/") .addResourceLocations("classpath:/front/") .addResourceLocations("classpath:/public/"); super.addResourceHandlers(registry); } }
这是一个 Java Spring 的配置类,用于配置拦截器和静态资源访问路径。其中,@Configuration 注解表示这是一个配置类,@Bean 注解表示该方法返回一个 Bean 对象,getAuthorizationInterceptor() 方法返回一个 AuthorizationInterceptor 对象,用于验证用户登录状态。addInterceptors() 方法用于添加拦截器,这里将 AuthorizationInterceptor 对象添加到所有路径上,但排除了 /static/ 路径。addResourceHandlers() 方法用于配置静态资源访问路径,这里将 classpath:/resources/、classpath:/static/、classpath:/admin/、classpath:/front/、classpath:/public/ 这几个路径下的静态资源都配置为可访问的。
阅读全文