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 }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM