Spring Boot中文手冊(3):Starters

 該系列的文章主要參考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