深入淺析Spring-boot-starter常用依賴模塊
Spring-boot的2大優(yōu)點:
1.基于Spring框架的“約定優(yōu)先于配置(COC)”理念以及最佳實踐之路。
2.針對日常企業(yè)應(yīng)用研發(fā)各種場景的Spring-boot-starter自動配置依賴模塊,且“開箱即用”(約定spring-boot-starter- 作為命名前綴,都位于org.springframenwork.boot包或者命名空間下)。
應(yīng)用日志和spring-boot-starter-logging
常見的日志系統(tǒng)大致有:java.util默認提供的日志支持,log4j,log4j2,commons logging,下面的spring-boot-starter-logging也是其中的一種。
maven依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-logging</artifactId> </dependency>
springBoot將使用logback作為應(yīng)用日志的框架,程序啟動時,由org.springframework.boot.logging-Logging-Application-Lisetener根據(jù)情況初始化并使用。
如果要想改變springBoot提供的應(yīng)用日志設(shè)定,可以通過一下原則:
遵循logback的約定,在classpath中使用自己定制的logback.xml配置文件。
在文件系統(tǒng)的任意一個位置提供自己的logback.xml配置文件,然后通過logging.config配置項指向這個配置文件然后引用它,例如在application.properties中指定如下的配置:
logging.config=/{some.path.you.defined}/any-logfile-name-I-like.log}
快速web應(yīng)用開發(fā)與spring-boot-starter-web
maven依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
在當下項目運行mvn spring-boot:run就可以直接啟用一個嵌套了tomcat的web應(yīng)用。
如果沒有提供任何服務(wù)的Cotroller,訪問任何路徑都會返回一個springBoot默認的錯誤頁面(Whitelabel error page)。
嵌入式Web容器層面的約定和定制
spring-boot-starter-web默認使用嵌套式的Tomcat作為Web容器對外提供HTTP服務(wù),默認端口8080對外監(jiān)聽和提供服務(wù)。
我們同樣可以使用 spring-boot-starter-jetty 或者 spring-boot-starter-undertow 作為Web容器。
想改變默認的配置端口,可以在application.properties中指定:
server.port = 9000(the port number you want)
類似的配置還有:
server.address server.ssl.* server.tomcat.*
如果上訴仍然沒有辦法滿足要求,springBoot支持對嵌入式的Web容器實例進行定制,可以通過向IoC容器中注冊一個EmbeddedServletContainerCustomizer類型的組件來對嵌入式的Web容器進行定制
public class UnveilSpringEmbeddedTomcatCustomizer implements EmbeddedServletContainer{ public void customize(ConfigurableEmbeddedServletContainer container){ container.setPort(9999); container.setContextPath("C\\hello"); ... } }
數(shù)據(jù)訪問與spring-boot-starter-jdbc
maven依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jdbc</artifactId> </dependency>
默認情況下,當我們沒有配置任何DataSource,SpringBoot會為我們自動配置一個DataSource,這種自動配置的方式一般適用于測試,開發(fā)還是自己配置一個DataSource的實例比較好。
如果我們的工程只依賴一個數(shù)據(jù)庫,那么,使用DataSource自動配置模塊提供的參數(shù)是最方便的:
spring.datasource.url=jdbc:mysql://{datasource host}:3306/{databaseName} spring.datasource.username={database username} spring.datasource.passwd={database passwd}
還會自動配置的有:JdbcTemplate DateSourceTransactionManager等,我們只要在使用的時候注入(@Autowired)就好了
此外,SpringBoot還支持的數(shù)據(jù)庫有spring-boot-data-jpa spring-boot-data-mongodb
spring-boot-starter-aop應(yīng)用及其使用場景
AOP:Aspect Oriented Programming,面向切面編程
maven依賴:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-aop</artifactId> </dependency>
spring-boot-starter-aop主要由2部分組成:
1.位于spring-boot-autoconfigure的org.sringframework.boot.autoconfigure.aop.AopAutoConfiguration提供的@Configuration配置類和相應(yīng)的配置項,即下面的2個配置項:
spring.aop.auto=true spring.aop.proxy-target-class=false
2.spring-boot-starter-aop模塊提供了針對spring-aop aspectjrt 和aspectjweaver的依賴
應(yīng)用安全與spring-boot-starter-security //todo
總結(jié)
以上所述是小編給大家介紹的Spring-boot-starter常用依賴模塊,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
SpringBoot中多環(huán)境yml的配置與打包問題
這篇文章主要介紹了SpringBoot中多環(huán)境yml的配置與打包問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-09-09spring-boot-starter-validation?校驗參數(shù)的實現(xiàn)
參數(shù)校驗在很多地方都可以用到,本文主要介紹了spring-boot-starter-validation?校驗參數(shù)的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2022-04-04java 下執(zhí)行mysql 批量插入的幾種方法及用時
java 下執(zhí)行mysql 批量插入的幾種方法及用時,1000次插入方法的比較。2013-04-04Java并發(fā)系列之JUC中的Lock鎖與synchronized同步代碼塊問題
這篇文章主要介紹了Java并發(fā)系列之JUC中的Lock鎖與synchronized同步代碼塊,簡單介紹了lock鎖及鎖的底層知識,結(jié)合案例給大家介紹的非常詳細,需要的朋友可以參考下2022-04-04Java中@DateTimeFormat注解與@JsonFormat注解的使用方式
這篇文章主要介紹了Java中@DateTimeFormat注解與@JsonFormat注解的使用方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-08-08解決myBatis中openSession()自動提交的問題
在學習MySQL過程中,發(fā)現(xiàn)插入操作自動提交,問題原因可能是myBatis中的openSession()方法設(shè)置了自動提交,或者是MySQL的默認引擎設(shè)置為不支持事務(wù)的MyISAM,解決辦法包括更改myBatis的提交設(shè)置或?qū)ySQL表的引擎改為InnoDB2024-09-09Java代碼實現(xiàn)對properties文件有序的讀寫的示例
本篇文章主要介紹了Java代碼實現(xiàn)對properties文件有序的讀寫的示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11