〇、什么是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 }
