Spring Boot系列(6)——Configurer和Customizer

〇、什么是Configurer和Customizer

  1.Configurer

  xxxConfigurer接口是一个配置器。实现该接口,编写具体的方法,来扩展Spring Boot中的配置。

  2.Customizer

  xxxCustomizer接口是一个定制器。一般定制器只有一个方法,通过这个方法来修改Spring Boot的配置。

一、配置器之WebMvcConfigurer,扩展视图控制器

  注意:添加@Configuration注解,标注该类为配置类。

        当配置器中的配置生效后,Spring Boot项目会既保留了自动配置,同时也使用我们扩展的配置。

 1 /*
 2 * 实现WebMvcConfigurer接口       ——>  WebMvc配置器
 3 * 实现其中的addViewControllers( )方法  ——>  添加视图控制器
 4 * */
 5 @Configuration
 6 public class MvcConfig implements WebMvcConfigurer {
 7 
 8     //View Controllers
 9     @Override
10     public void addViewControllers(ViewControllerRegistry registry) {
11         //当访问“/、/index”时,就转到login视图
12         registry.addViewController("/").setViewName("login");
13         registry.addViewController("/index").setViewName("login");
14     }
15 }

二、定制器之WebServerFactoryCustomizer,修改服务器访问端口

1.WebServerFactoryCustomizer中只有一个方法(一般定制器都是只有一个方法)

实现该接口,通过该方法就可以修改服务器的一些配置参数

1 @FunctionalInterface
2 public interface WebServerFactoryCustomizer<T extends WebServerFactory> {
3     void customize(T factory);
4 }

2.我们通过向容器添加组件的方式修改服务器访问端口。

以下代码就类似于在全局配置文件在中编写 server.port=8081

 1 //配置类
 2 @Configuration
 3 public class Beans {
 4 
 5     //向容器添加组件
 6     @Bean
 7     public WebServerFactoryCustomizer<ConfigurableWebServerFactory> webServerFactoryCustomizer(){
 8         //这个factory就相当于Servlet容器
 9         return new WebServerFactoryCustomizer<ConfigurableWebServerFactory>() {
10             @Override
11             public void customize(ConfigurableWebServerFactory factory) {
12                 factory.setPort(8081);
13             }
14         };
15     }
16 }
原文地址:https://www.cnblogs.com/Drajun/p/12261475.html