SpringBoot自動配置詳解

SpringBoot自動配置詳解

按照“約定大於配置”的原則,Spring Boot通過掃描依賴關係來使用類路徑中可用的庫。
對於眉哥哥pom文件中的“spring-boot-starter-*”依賴,Spring Boot會執行默認的AutoConfigurarion類。此類使用*AutoConfiguration詞法模式自動配置
使用“--dubug‘運行應用程序可以查看自動配置的相關報告
    $ java -jar bulid/libs/spring-boot-rest-1.0.0.jar -- debug
排除某些庫的自動配置
    @EnableAutoConfiguration(exclude={DataSourceAutoConfiguration.class})
    
使用自定義端口:
    server.port=8081

更換配置文件的位置:
    默認情況下,Spring Boot將所有配置外部化到application.properties文件中。此外,可以設置從外部讀取屬性
        spring.config.name:配置文件名
        spring.config.location:配置文件位置
        
自定義配置:
    配置文件:file.name=hahaha
    java文件中獲取屬性:
        @Value("${file.name}")
    
使用.yaml作爲配置文件(eclipse排版注意不要用tab鍵)
    spring:
        application:
            name:walang
        datasource:
            url:...

profiles:
    不同的環境使用不同的配置(spring cloud推薦使用配置中心)。
    application.properties配置激活文件(放在主類或者jar之前):
        spring.profiles.active=production
    .properties能夠平坦化映射,可以用 application-${profile}.properties 的方式來指定特定於配置文件的值
    yaml文件用 "---"行 分割文檔序列,每個文檔分別解析爲平坦化的映射
        server:
            port:9000
        ---
        spring:
            profiles:development
        server:
            port:9001
        ---
        spring:
            profiles:production
        server:
            port:0909


內嵌Servlet容器
    Spring Boot包括支持嵌入式Tomcat、Jetty和Undertow服務器,默認嵌入式服務將偵聽8080端口上的HTTP請求
    
註冊Servlet、過濾器和監聽器
    如果慣例的映射不夠靈活,可以通過ServletRegistrationBean,FilterRestrationBean,ServletListenerRestrationBean類來進行完全控制

Servlet上下文初始化
    如果需要在Spring Boot執行Servlet上下文初始化,則應註冊一個實現org.springframework.boot.web.servlet.ServletContextInitializer接口的bean。OnStartup方法提供對ServletContext的訪問。
    當使用嵌入式容器時,可以使用@ServletComponentScan來自動注入啓用@WebServlet,@WebFilter,@WebListener註解的類
    注意:@ServletComponentScan在獨立部署的容器中不起作用,因爲獨立部署的容器中使用容器內置的發現機制

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章