「 該系列的文章主要參考Spring Boot的官方文檔來進行翻譯,逐步將官方文檔翻譯過來,方便大家共同學習和討論,但是畢竟能力有限,如有問題,感謝大家留言指正。」
Starters
Starters是Spring Boot提供的一組非常方便的依賴描述器,你可以在你的應用中直接使用它們。你可以獲得所有你需要的Spring和相關技術一站式服務,你不需要翻閱什麼示例代碼,不需要複製粘貼大量的依賴配置。比如,當你想使用Spring和JPA來訪問數據庫時,在你的項目中添加 spring-boot-starter-data-jpa
依賴即可。
Starters包含了你啓動搭建並啓動一個項目所需的大量依賴,並且還提供一致的、可管理的傳遞性依賴支持。
What’s in a name(名字裏面都有什麼?)
所有的官方starter遵循了一個相似的命名模式: spring-boot-starter-*
,其中的 *
是一個特殊符號,代表不同類型的應用。這種命名模式能讓你很方便地找到你想要的那個starter。很多IDE裏面集成的Maven都支持你根據名字來搜索依賴,比如安裝了相應的Eclipse或者STS插件之後,你可以在pom編輯器中輸入「spring-boot-starter」,然後通過按住 ctrl-space
來獲取一個完整的列表供你選擇。
在「創建你自己的Starter」那一章中,我們提到了第三方的starters不應該以 spring-boot
作爲命名前綴,因爲這個前綴是Spring Boot官方製品預留的,一般情況下,第三方的starter都是使用項目名稱作爲命名前綴的,比如一個第三方的starter項目叫做 thirdpartyproject
,那麼它的starter可以命名爲 thirdpartyproject-spring-boot-starter
。
Spring Boot官方在 org.springframework.boot
組下提供了一下這些應用starters供大家使用:
spring-boot-starter
:核心starter,包含自動配置的支持,日誌記錄和YAML文件的支持;
spring-boot-starter-activemq
:支持Apache ActiveMQ啓動JMS消息的starter。
spring-boot-starter-amqp
:接入Spring AMQP、Rabbit MQ時使用的starter。
spring-boot-starter-aop
:通過Spring AOP、AspectJ實現面向切面編程時使用的starter。
spring-boot-starter-artemis
:基於Apache Artemis來實現JMS消息系統時使用的starter。
spring-boot-starter-batch
:實現Spring Batch時使用的starter。
spring-boot-starter-cache
:實現Spring框架的緩存支持時使用的starter。
spring-boot-starter-cloud-connectors
:實現在雲平臺上簡單而便利地連接微服務時的Spring Cloud連接器時使用的starter,就如同Cloud Foundry 和 Heroku一樣。
spring-boot-starter-data-cassandra
:使用Cassandra分佈式數據庫或者Spring Data Cassandra依賴的starter。
spring-boot-starter-data-cassandra-reactive
:使用Cassandra分佈式數據庫和Spring Data Cassandra Reactive時依賴的starter。
spring-boot-starter-data-couchbase
:使用Couchbase面向文檔的數據庫和Spring Data Couchbase時依賴的starter。
spring-boot-starter-data-couchbase-reactive
:使用Couchbase面向文檔的數據庫和Spring Data Couchbase Reactive時依賴的starter。
spring-boot-starter-data-elasticsearch
:使用Elasticsearch搜索和分析引擎和Spring Data Elasticsearch時依賴的starter。
spring-boot-starter-data-jdbc
:使用Spring Data JDBC時依賴的starter。
spring-boot-starter-data-jpa
:使用Spring數據JPA與Hibernate時依賴的starter。
spring-boot-starter-data-ldap
:使用Spring Data LDAP時依賴的starter。
spring-boot-starter-data-mongodb
:使用MongoDB面向文檔的數據庫和Spring Data MongoDB時依賴的starter。
spring-boot-starter-data-mongodb-reactive
:使用MongoDB面向文檔的數據庫和Spring Data MongoDB Recative時依賴的starter。
spring-boot-starter-data-neo4j
:使用Neo4j圖數據庫和Spring Data Neo4j時依賴的starter。
spring-boot-starter-data-redis
:使用Redis key-value 數據存儲與Spring Data Redis和Jedis客戶端時依賴的starter。
spring-boot-starter-data-redis-reactive
:使用Redis key-value 數據存儲與Spring Data Redis Reactive和Jedis客戶端時依賴的starter。
spring-boot-starter-data-rest
:通過使用Spring Data REST在REST上暴露Spring數據庫時依賴的starter。
spring-boot-starter-data-solr
:使用Apache Solr搜索平臺與Spring Data Solr時依賴的starter。
spring-boot-starter-freemarker
:使用FreeMarker視圖構建MVC Web應用程序時依賴的starter。
spring-boot-starter-groovy-templates
:使用Groovy模板視圖構建MVC Web應用程序時依賴的starter。
spring-boot-starter-hateoas
:使用Spring MVC和Spring HATEOAS構建基於超媒體的RESTful Web應用程序時依賴的starter。
spring-boot-starter-integration
:使用Spring Integration時依賴的starter。
spring-boot-starter-jdbc
:使用JDBC與Tomcat JDBC連接池時依賴的starter。
spring-boot-starter-jersey
:使用JAX-RS和Jersey構建RESTful Web應用程序時依賴的starter。spring-boot-starter-web的替代方案。
spring-boot-starter-jooq
:使用jOOQ訪問SQL數據庫時依賴的starter。spring-boot-starter-data-jpa或spring-boot-starter-jdbc的替代方案。
spring-boot-starter-json
:用於讀取和寫入json時依賴的starter。
spring-boot-starter-jta-atomikos
:使用Atomikos的JTA事務時依賴的starter。
spring-boot-starter-jta-bitronix
:使用Bitronix進行JTA 事務時依賴的starter。
spring-boot-starter-mail
:使用Java Mail 或者 Spring框架的Email發送支持時依賴的starter。
spring-boot-starter-mustache
:使用Mustache視圖構建MVC Web應用程序時依賴的starter。
spring-boot-starter-oauth2-client
:使用Spring Security’s OAuth2/OpenID連接客戶端時依賴的starter。
spring-boot-starter-oauth2-resource-server
:使用Spring Security’s OAuth2/OpenID服務端時依賴的starter。
spring-boot-starter-quartz
:使用Spring Boot quartz時依賴的starter。
spring-boot-starter-security
:使用Spring Boot security時依賴的starter。
spring-boot-starter-test
:使用JUnit,Hamcrest和Mockito的庫測試Spring Boot應用程序時依賴的starter。
spring-boot-starter-thymeleaf
:使用Thymeleaf視圖構建MVC Web應用程序時依賴的starter。
spring-boot-starter-validation
:使用Java Bean Validation 與Hibernate Validator時依賴的starter。
spring-boot-starter-web
:使用Spring MVC構建Web,包括RESTful應用程序。使用Tomcat作爲默認的嵌入式容器時依賴的starter。
spring-boot-starter-web-services
:實現Spring Web Services時依賴的starter。
spring-boot-starter-webflux
:使用Spring Framework’s Reactive Web support特性構建WebFlux應用時依賴的starter。
spring-boot-starter-websocket
:使用Spring Framework’s WebSocket support特性構建WebSocket應用時依賴的starter。
除了這些starters,下面的starters還可以用來添加生產環境的特性
spring-boot-starter-actuator
:使用Spring Boot Actuator提供生產準備功能,可幫助您監控和管理應用程序時依賴的starter。
最後,Spring Boot還提供了以下starters,用來排除或者替換特定技術:
spring-boot-starter-jetty
:使用Jetty作爲嵌入式servlet容器時依賴的starter。spring-boot-starter-tomcat的替代方案。
spring-boot-starter-log4j2
:使用Log4j2進行日誌記錄時依賴的starter。spring-boot-start-logging的替代方法。
spring-boot-starter-logging
:使用Logback進行日誌記錄時依賴的starter。默認的日誌啓動器。
spring-boot-starter-reactor-netty
:使用Reactive Netty作爲嵌入式reactive http服務器時依賴的starter。
spring-boot-starter-tomcat
:使用Tomcat作爲嵌入式servlet容器時依賴的starter。spring-boot-starter-web的默認servlet容器啓動器。
spring-boot-starter-undertow
:使用Undertow作爲嵌入式servlet容器時依賴的starter。spring-boot-starter-tomcat的替代方案。
查看GitHub上位於spring-boot-starters模塊內的README文件,可以獲取到一個社區貢獻的其他starter POMs列表。
END