定制化原理
- 定制化的常见方式
- 原理分析套路
定制化的常见方式
- 修改配置文件;
- xxxxxCustomizer;
- 编写自定义的配置类 xxxConfiguration; @Bean替换、增加容器中默认组件;视图解析器
自定义异常视图解析器的演示:
- Web应用 编写一个配置类实现 WebMvcConfigurer 即可定制化web功能; @Bean给容器中再扩展一些组件
@Configuration
public class WebConfig implements WebMvcConfigurer
{
@Override
public void addInterceptors(InterceptorRegistry registry)
{
registry.addInterceptor(new LoginHanlderIntercept()).
//拦截任意多层路径下的所有请求,某些请求不进行拦截
addPathPatterns("/**").
excludePathPatterns("/","/login","/css/**","/fonts/**","/images/**","/js/**");
}
}
- @EnableWebMvc WebMvcConfigurer —— @Bean 可以全面接管SpringMVC,所有规则全部自己重新配置; 实现定制和扩展功能
/**
* 全面接管springmvc时,定义静态资源行为
* @param registry
*/
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
/**
* 访问 /aa/** 所有请求都去 classpath:/static/ 下面进行匹配
*/
registry.addResourceHandler("/aa/**")
.addResourceLocations("classpath:/static/");
}
原理分析套路
场景starter - xxxxAutoConfiguration - 导入xxx组件 - 绑定xxxProperties – 绑定配置文件项