Spring Boot 簡化了基於 Spring 的應用開發,你只須要 "run" 就能建立一個獨立的,產品級別的 Spring 應用。 java
Spring 平臺及第三方庫提供開箱即用的設置,這樣你就能夠有條不紊地開始。多數 Spring Boot 應用只須要不多的Spring 配置。你可使用 Spring Boot 建立 Java 應用,並使用 java -jar 啓動它或採用傳統的 war 部署方式git
Java7 以上,一般建議儘量使用 Java8github
Maven 3.2+,Gradle 2.9+ 或 Gradle 3 web
內嵌容器支持 Tomcat、Jettyredis
POM 文件繼承 spring-boot-starter-parent 工程,並聲明一個或多個 "Start POMs" 依賴,此外 Spring Boot 提供了一個可選的 Maven 插件,用於建立可執行 jarsspring
... <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.5.3.RELEASE</version> </parent> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ...
略mongodb
Starters 是一個依賴描述符的集合,你能夠將它包含進項目中,這樣添加依賴就很是方便。你能夠獲取全部 Spring 及相關技術的一站式服務,而不須要翻閱示例代碼,拷貝粘貼大量的依賴描述符。例如,若是你想使用 Spring 和 JPA 進行數據庫訪問,只須要在項目中包含spring-boot-starter-data-jpa依賴,而後你就能夠開始了。數據庫
該 starters 包含不少搭建,快速運行項目所需的依賴,並提供一致的,可管理傳遞性的依賴集。編程
如下應用程序 starters 是 Spring Boot 在 org.springframework.boot group 下提供的:緩存
名稱 | 描述 |
---|---|
spring-boot-starter | 核心Starter,包含了自動配置,日誌,YAML配置 |
名稱 | 描述 |
---|---|
spring-boot-starter-web | 用於使用Spring MVC構建web應用,包括RESTful。Tomcat是默認的內嵌容器 |
spring-boot-starter-web-services | 對Spring Web服務的支持 |
spring-boot-starter-websocket | 對Spring WebSocket支持 |
spring-boot-starter-mobile | 用於使用Spring Mobile開發web應用 |
spring-boot-starter-jersey | 用於使用JAX-RS和Jersey構建RESTful web應用,spring-boot-starter-web的替代方案 |
spring-boot-starter-hateoas | 用於使用基於hypermedia-based RESTful web 應用 |
名稱 | 描述 |
---|---|
spring-boot-starter-jdbc | 對JDBC的支持(使用Tomcat JDBC鏈接池) |
spring-boot-starter-data-redis | 用於使用經過Jedis客戶端操做的Redis |
spring-boot-starter-data-mongodb | 用於使用基於文檔的數據庫MongoDB |
spring-boot-starter-data-cassandra | 用於使用分佈式數據庫Cassandra |
spring-boot-starter-data-solr | 用於使用Apache Solr |
spring-boot-starter-data-elasticsearch | 用於使用Elasticsearch搜索 |
spring-boot-starter-data-couchbase | 用於使用基於文檔的數據庫Couchbase |
spring-boot-starter-data-gemfire | 用於使用分佈式數據存儲GemFire |
spring-boot-starter-data-neo4j | 用於使用圖數據庫Neo4j |
spring-boot-starter-data-ldap | 用於使用 Spring Data LDAP |
spring-boot-starter-data-jpa | 用於使用Hibernate實現Spring Data JPA |
spring-boot-starter-data-rest | 用於使用 Spring Data REST |
名稱 | 描述 |
---|---|
spring-boot-starter-jta-atomikos | 用於使用Atomikos實現JTA事務 |
spring-boot-starter-jta-bitronix | 用於使用Bitronix實現JTA事務 |
spring-boot-starter-jta-narayana | 用於使用Narayana 實現JTA事務 |
名稱 | 描述 |
---|---|
spring-boot-starter-thymeleaf | 用於使用Thymeleaf模板引擎構建MVC web應用 |
spring-boot-starter-freemarker | 用於使用FreeMarker模板引擎構建MVC web應用 |
spring-boot-starter-mustache | 用於使用Mustache模板引擎構建MVC web應用 |
spring-boot-starter-groovy-templates | 用於使用groovy模板引擎構建MVC web應用 |
名稱 | 描述 |
---|---|
spring-boot-starter-activemq | 用於使用Apache ActiveMQ實現JMS消息 |
spring-boot-starter-artemis | 用於使用Apache Artemis實現JMS消息 |
spring-boot-starter-amqp | 用於使用AMQP與Rabbit MQ消息隊列 |
名稱 | 描述 |
---|---|
spring-boot-starter-mail | 用於使用Java Mail和Spring框架email發送支持 |
spring-boot-starter-integration | 用於使用Spring Integration |
spring-boot-starter-security | 對Spring Security的支持 |
spring-boot-starter-test | 用於測試Spring Boot應用,支持經常使用測試類庫,包括JUnit, Hamcrest和Mockito |
spring-boot-starter-batch | 用於使用Spring Batch |
spring-boot-starter-cache | 用於使用Spring框架的緩存支持 |
spring-boot-starter-actuator | 爲Spring Boot提供了監控與管理 |
spring-boot-starter-aop | 用於使用Spring AOP和AspectJ實現面向切面編程 |
spring-boot-starter-validation | 用於使用Hibernate Validator實現Java Bean校驗 |
spring-boot-starter-logging | 用於Logback支持,默認的logging starter |
spingg-boot-starter-log4j2 | 用於Log4j2支持,用於替換默認的logging |
名稱 | 描述 |
---|---|
spring-boot-starter-social-linkedin | 用於使用Spring Social Linkedin的支持 |
spring-boot-starter-social-facebook | 用於使用Spring Social Facebook的支持 |
spring-boot-starter-social-twitter | 用於使用Spring Social Twitter的支持 |
下面能夠獲取一個社區貢獻的 starters 列表:
https://github.com/spring-pro...
名稱 | 描述 |
---|---|
grpc-spring-boot-starter | 用於支持gRPC |
mybatis-spring-boot | 用於支持Mybatis |
okhttp-spring-boot | 用於支持OkHttp |
下面是個典型的結構,建議把應用的main類放到包的頂層
com +- example +- myproject +- Application.java | +- domain | +- Customer.java | +- CustomerRepository.java | +- service | +- CustomerService.java | +- web +- CustomerController.java
@SpringBootApplication註解等價於以默認屬性使用:
@Configuration
@EnableAutoConfiguration
@ComponentScan
java -jar target/myproject-0.0.1-SNAPSHOT.jar
mvn spring-boot:run
可使用一些有用的環境變量:
export MAVEN_OPTS=-Xmx1024m -XX:MaxPermSize=128M
完全的的解決可使用:Spring Loaded 項目或 JRebel
spring-boot-devtools 支持應用的快速重啓
SpringApplication將從如下位置加載 application.properties 文件,並把它們添加到Spring:
當前目錄下的/config 子目錄。
當前目錄。
classpath下的/config包。
classpath根路徑(root)。
SpringApplication會將全部命令行配置參數(以'--'開頭,好比--server.port=9000)轉化成一個property,並將其添加到Spring Environment中
命令行屬性老是優先於其餘屬性源。
經過 --debug 標識開啓控制檯DEBUG級別日誌記錄,也能夠在 application.properties中指定 debug=true
java -jar myapp.jar --debug
日誌級別配置示例:
logging.level.root=WARN logging.level.org.springframework.web=DEBUG logging.level.org.hibernate=ERROR