引言
本文主要介紹spring-boot
官方提供的常用的starters
茁肠,對應(yīng)的spring-boot
版本均為1.4.2.RELEASE
,官方文檔地址為http://docs.spring.io/spring-boot/docs/1.4.2.RELEASE/reference/html/using-boot-build-systems.html#using-boot-starter辜伟,官方提供的starters
均以spring-boot-starter-
開頭,第三方提供的starters
均以acme-spring-boot-starter
開頭蟋字,當(dāng)然你也可以自己定義starters
硅堆。
Database
Name | Description | Pom |
---|---|---|
spring-boot-starter-data-redis |
集成了Spring Data Redis 和redis,redis 是一種NoSQL 數(shù)據(jù)庫 |
Pom |
spring-boot-starter-data-mongodb |
集成了Spring Data MongoDB 和mongodb,mongodb 是一種NoSQL 數(shù)據(jù)庫 |
Pom |
spring-boot-starter-data-neo4j |
集成了Spring Data Neo4j 和Neo4j,Neo4j 是一種圖數(shù)據(jù)庫 |
Pom |
spring-boot-starter-data-couchbase |
集成了Spring Data Couchbase 和Couchbase,couchbase 是一種NoSQL 數(shù)據(jù)庫 |
Pom |
spring-boot-starter-data-cassandra |
集成了Spring Data Cassandra 和cassandra,cassandra 是一種開源的分布式NOSQL 數(shù)據(jù)庫,最早由facebook 開發(fā),后捐贈給Apache
|
Pom |
spring-boot-starter-data-gemfire |
集成了Spring Data GemFire 和GemFire,GemFire 是一種NoSQL 數(shù)據(jù)庫 |
Pom |
Servlet Container
這篇文章解釋了什么是一個Servlet Container
。目前Servlet Container
有很多昭灵,詳細(xì)可以參考維基百科吠裆。spring-boot
集成了以下幾款開源的Servlet Container
:
-
tomcat
:tomcat
是spring-boot
默認(rèn)集成的Servlet Container
。 -
undertow
:undertow
是一款輕量級烂完、靈活的试疙、可嵌入的、并支持Web Socket
協(xié)議的開源容器窜护。 -
jetty
:jetty
是一款由eclipse
維護的開源容器效斑,目前使用也很廣泛。
Name | Description | Pom |
---|---|---|
spring-boot-starter-tomcat |
是spring-boot-starter-web 默認(rèn)集成的容器 |
Pom |
spring-boot-starter-undertow |
集成了undertow
|
Pom |
spring-boot-starter-jetty |
集成了jetty
|
Pom |
Rest
Rest
是representational state transfer
的縮寫柱徙,意思是表達性狀態(tài)轉(zhuǎn)換缓屠。Rest
是一種架構(gòu)風(fēng)格,它包含了一個分布式超文本系統(tǒng)中對于組件护侮、連接器和數(shù)據(jù)的約束敌完。想了解更多關(guān)于Rest點擊此處
HATEOAS
是Hypermedia as the engine of application state
的縮寫,意思是超媒體即應(yīng)用狀態(tài)引擎羊初。HATEOAS
是Rest
架構(gòu)風(fēng)格中最復(fù)雜的約束滨溉,也是構(gòu)建成熟Rest
服務(wù)的核心。
JAX-RS
是Java API for RESTful Web Services
的縮寫长赞,是一個Java編程語言的應(yīng)用程序接口晦攒,支持按照Rest
架構(gòu)風(fēng)格創(chuàng)建Web服務(wù)。目前已知的JAX-RS
有4種得哆,Jersey
是其中的一種實現(xiàn)脯颜,由Sun
開發(fā)的產(chǎn)品級質(zhì)量的JAX-RS
的參考實現(xiàn)。當(dāng)然贩据,Jersey
也支持HATEOAS
約束栋操。
spring-hateoas
和spring-data-rest
是spring
旗下的兩個子項目,spring-data-rest
包含了spring-hateoas
饱亮,雖然spring-hateoas
實現(xiàn)了HATEOAS
矾芙,但是spring-data-rest
并沒有真正的實現(xiàn)JAX-RS
規(guī)范。
spring-boot
提供了以下幾種來快速構(gòu)建Rest
服務(wù):
Name | Description | Pom |
---|---|---|
spring-boot-starter-web |
默認(rèn)是支持RESTful 的 |
Pom |
spring-boot-starter-hateoas |
集成了spring-mvc 和spring-hateoas
|
Pom |
spring-boot-starter-jersey |
集成了spring-mvc 和Jersey
|
Pom |
spring-boot-starter-data-rest |
集成了spring-data-rest 和spring-mvc
|
Pom |
Socia API
spring-social
是spring
旗下的一個擴展子項目近上,
它主要方便你對Facebook
剔宪,Twitter
,LinkedIn
等SAAS服務(wù)提供的API的一個使用壹无。目前spring-social
的最新版本是1.1.4.RELEASE
歼跟。它有以下幾個模塊組成:
spring-social-web
spring-social-config
spring-social-core
spring-social-security
目前已正式發(fā)布支持的有Facebook
,Twitter
格遭,LinkedIn
spring-social-linkedin
spring-social-facebook
spring-social-twitter
正在孵化的有Github
和Tripit
spring-social-github
spring-social-tripit
spring-boot
集成了Facebook
哈街,Twitter
,LinkedIn
Name | Description | Pom |
---|---|---|
spring-boot-starter-social-linkedin |
集成了spring-boot-starter-web 和spring-social-linkedin
|
Pom |
spring-boot-starter-social-facebook |
集成了spring-boot-starter-web 和spring-social-facebook
|
Pom |
spring-boot-starter-social-twitter |
集成了spring-boot-starter-web 和spring-social-twitter
|
Pom |
JTA
JTA
是Java Transaction API
的縮寫拒迅,意思是Java事務(wù)API
骚秦,是一個Java企業(yè)版的應(yīng)用程序接口,在Java環(huán)境中璧微,允許完成跨越多個XA資源的分布式事務(wù)作箍。JTA是在Java社區(qū)過程下制定的規(guī)范。
目前開源的JTA
實現(xiàn)有以下幾個:
-
narayana
:narayana
是jboss
下的一款開源的JTA
-
bitronix
:bitronix
是一款開源的JTA
前硫,不過目前已沒人維護 -
atomikos
:atomikos
目前提供了商業(yè)版本的維護胞得,但其社區(qū)版仍然是開源的。
Name | Description | Pom |
---|---|---|
spring-boot-starter-jta-narayana |
集成了JTA transactions 和narayana
|
Pom |
spring-boot-starter-jta-bitronix |
集成了JTA transactions 和bitronix
|
Pom |
spring-boot-starter-jta-atomikos |
集成了JTA transactions 和atomikos
|
Pom |
Template Engine
spring-boot-1.4.2.RELEASE
內(nèi)置支持的模板引擎有
thymeleaf
屹电,mustache
阶剑,groovy
跃巡,freemarker
,velocity
牧愁。不過從1.4
將不再支持velocity
素邪。
Name | Description | Pom |
---|---|---|
spring-boot-starter-thymeleaf |
集成了spring-boot-starter-web 和thymeleaf 模板引擎 |
Pom |
spring-boot-starter-mustache |
集成了spring-boot-starter-web 和mustache 模板引擎 |
Pom |
spring-boot-starter-groovy-templates |
集成了spring-boot-starter-web 和groovy-templates 模板引擎 |
Pom |
spring-boot-starter-freemarker |
集成了spring-boot-starter-web 和freemarker 模板引擎 |
Pom |
spring-boot-starter-velocity |
集成了spring-boot-starter-web 和velocity 模板引擎 |
Pom |
Logging
目前主流的Java日志框架有log4j
,logback
和log4j2
猪半。spring-boot
集成了logback
和log4j2
兔朦。
Name | Description | Pom |
---|---|---|
spring-boot-starter-logging |
集成logback
|
Pom |
spring-boot-starter-log4j2 |
集成log4j2
|
Pom |
Test
目前主流的Java測試框架有JUnit
,Hamcrest
和Mockito
磨确。spring-boot
集成了這三者沽甥。
Name | Description | Pom |
---|---|---|
spring-boot-starter-test |
集成了JUnit ,Hamcrest 和Mockito
|
Pom |
Security
spring-security
是spring
旗下的一個子項目乏奥,支持授權(quán)和認(rèn)證摆舟,可以防止session fixation
(會話固定)、clickjacking
(點擊劫持)英融、cross site request forgery(CSRF)(跨站請求偽造)等攻擊盏檐。spring-boot
集成了spring-security
。
Name | Description | Pom |
---|---|---|
spring-boot-starter-security |
集成了spring-security
|
Pom |
MQ
JMS
是Java Message Service
的縮寫驶悟,意思是Java消息服務(wù)胡野,是一個Java服務(wù)中關(guān)于面向消息中間件的API,用于在兩個應(yīng)用程序之間或分布式系統(tǒng)中發(fā)送消息痕鳍,進行異步通信硫豆。JMS
規(guī)范包括兩種消息模式,點對點和發(fā)布者/訂閱者笼呆,支持同步和異步的消息處理熊响,支持面向事件的方法接收消息。目前主流的開源實現(xiàn)有Apache ActiveMQ
和Kafka
诗赌。
AMQP
是Advanced Message Queuing Protocol
的縮寫汗茄,意思是高級消息隊列協(xié)議,是一個異步消息傳遞所使用的應(yīng)用層協(xié)議規(guī)范铭若。作為線路層協(xié)議洪碳,而不是API(例如JMS
),AMQP客戶端能夠無視消息的來源任意發(fā)送和接受信息叼屠。目前主流的開源實現(xiàn)有RabbitMQ
瞳腌。
JMS
和AMQP
的對比:
JMS | AMQP | |
---|---|---|
定義 | JAVA API | Protocol |
跨語言 | 否 | 是 |
跨平臺 | 否 | 是 |
消息模型 | one to one and publish/subscriber | direct, fanout, topic, headers |
消息類型 | text,map,byte,stream,object | byte |
spring-boot
集成了ActiveMQ
和RabbitMQ
。
Name | Description | Pom |
---|---|---|
spring-boot-starter-activemq |
集成ActiveMQ
|
Pom |
spring-boot-starter-amqp |
集成RabbitMQ
|
Pom |
Production Starters
Name | Description | Pom |
---|