SpringBoot 學習(一)---- SpringBoot 核心 之 Spring Boot基本配置介紹
一、關閉某個自動配置
通過上一篇 @SpringBootApplication 下的 @EnableAutoConfiguration 可知,Spring Boot 會根據專案中的jar包依賴,自動做出配置,Spring Boot支援的部分自動配置如下圖(非常多):
假如不需要Spring Boot 自動配置,想關閉某一項的自動配置,該如何配置呢?
例如:不想自動配置Redis,想自己動手配置,通過檢視 @SpringBootApplication 的原始碼可以看出,關閉特定的自動配置應該使用 @SpringBootApplication 下的 exclude 引數,現以關閉 Redis 自動配置為例:
@SpringBootApplication(exclude={RedisAutoConfiguration.class})
二、制定啟動banner
在啟動Spring Boot 專案的時候,我們在控制檯看到如下圖的預設啟動圖案。
如果想自己指定啟動的圖案應該如何配置呢?
其中,Font:選擇字型型別;Character Width:字元寬度;Character Height:字元高度;右邊為編輯框。
- 在第1步所示範的網站上單擊左下方的 " Select & Copy " 按鈕,將自定義的banner圖案進行復制,然後新建一個 banner.txt檔案,將複製好的圖案寫入 banner.txt 檔案中。
- 將 banner.txt 檔案放到專案的 src/main/resources 目錄下,如下圖:
- 重新啟動程式,效果如下圖:
三、應用的全域性配置檔案
可以在 Spring Boot 專案的 src/main/resources 目錄下或者在類路徑的 /config 目錄下建立一個全域性的配置檔案 application.properties 或者字尾為.yml 的 application.yml 檔案,用於修改Spring Boot 專案的預設配置值。例如修改專案的預設埠,或者進入 DispatcherServlet 的請求地址規則等。
通常,在實際開發中我們習慣使用 application.properties 檔案作為應用的全域性配置檔案,一般放在 src/main/resources 目錄下。
例如,在 src/main/resources 目錄下建立一個名為 application.properties 的檔案,配置內容如下:
server.port=9999
server.servlet-path=*.action
(1)、其中,server.port 引數用於將 Spring Boot 專案的預設埠號改為9999。
(2)、server.servlet-path 引數使用者將進入DispathcherServlet 的規則修改為:*.action 。
四、Spring Boot 的依賴模組
Spring Boot 提供了很多簡化專案開發的“開箱即用”的依賴模組,例如:在專案中使用pom.xml 檔案中的配置。
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
Spring Boot 會自動關聯WEB開發相關的依賴,如 Tomcat 以及 spring-webmvc 等,進而對WEB開發進行支援,同時相關技術的配置也將實現自動配置,程式設計師即避開繁瑣的配置檔案了。除此之外,官方還提供瞭如下依賴模組:
- spring-boot-starter:這是 Spring Boot 的核心啟動器,包含了自動配置、日誌和YAML檔案支援。
- spring-boot-starter-activemq:為 JMS 使用 Apache ActiveMQ 。ActiveMQ 是Apache出品的最流行的、能力強勁的開源訊息匯流排。
- spring-boot-starter-amqp:通過 spring-rabbit 來支援 AMQP 協議 (Advanced Message Queuing Protocol)。
- spring-boot-starter-aop:支援面向切面的程式設計(AOP),包括 spring-aop 和 AspectJ。
- spring-boot-starter-artemis:通過Apache Artemis支援 JMS 的 API (Java Message Service API)。
- spring-boot-starter-batch:支援 Spring Bath,包括 HSQLDB 資料庫。
- spring-boot-starter-cache:支援 Spring 的 Cache 抽象。
- spring-boot-starter-cloud-connectors:支援 Spring Cloud Connectors ,簡化了在像 Cloud Foundry 或 Heroku 這樣的雲平臺上的連線服務。
- spring-boot-starter-data-cassandra:使用 Cassacdra 分散式資料庫、Spring Data Cassandra。Apache Cassandra 是一套開源分散式 NoSQL 資料庫系統。
- spring-boot-starter-data-couchbase:使用 Couchbase 檔案儲存資料庫、Spring Data Couchbase。Spring Data 是一個用於簡化資料庫訪問並支援雲服務的開源框架。
- spring-boot-starter-data-elasticsearch: 支援ElasticSearch搜尋和分析引擎,包括spring-data-elasticsearch。
- spring-boot-starter-data-gemfire :支援GemFire分散式資料儲存,包括spring-data-gemfire。
- spring-boot-starter-data-jpa :支援JPA(Java Persistence API. ,包括spring-data-jpa、spring-orm、Hibernate。
- spring-boot-starter-data-ldap:支援 Spring Data LDAP。
- spring-boot-starter-data-mongodb :支援MongoDB資料,包括spring-data-mongodb。
- spring-boot-starter-data-neo4j:使用 Neo4j圖形資料庫、Spring Data Neo4j 。Neo4j 是一個高效能的 NoSQL 圖形資料庫,它將結構化資料儲存在網路上而不是表中。
- spring-boot-starter-redis :支援Redis鍵值儲存資料庫,包括spring-redis。
- spring-boot-starter-data-rest :通過spring-data-rest-webmvc,支援通過REST暴露Spring Data資料倉庫。
- spring-boot-starter-data-solr :支援Apache Solr搜尋平臺,包括spring-data-solr。
- spring-boot-starter-freemarker:支援 FreeMarker 模組引擎。
- spring-boot-starter-groovy-templates:支援 Groovy 模組引擎。
- spring-boot-starter-hateoas:通過 sping-hateos 支援基於 HATEOAS 的 RESTful Web 服務。
- spring-boot-starter-integration :支援通用的spring-integration模組。
- spring-boot-starter-jdbc :支援JDBC資料庫。
- spring-boot-starter-jersey :支援Jersey RESTful Web服務框架。
- spring-boot-starter-hornetq :通過HornetQ支援JMS。
- spring-boot-starter-jta-atomikos :通過Atomikos支援JTA分散式事務處理。
- spring-boot-starter-jta-bitronix :通過Bitronix支援JTA分散式事務處理。
- spring-boot-starter-mail :支援javax.mail模組。
- spring-boot-starter-mobile :支援spring-mobile。
- spring-boot-starter-mustache :支援Mustache模板引擎
- spring-boot-starter-security :支援spring-security。
- spring-boot-starter-social-facebook :支援spring-social-facebook
- spring-boot-starter-social-linkedin :支援pring-social-linkedin
- spring-boot-starter-social-twitter :支援pring-social-twitter
- spring-boot-starter-thymeleaf
- 支援Thymeleaf模板引擎,包括與Spring的整合。
- spring-boot-starter-velocity
- 支援Velocity模板引擎。
- spring-boot-starter-web :支援全棧式Web開發,包括Tomcat和spring-webmvc。
- spring-boot-starter-websocket :支援WebSocket開發。
- spring-boot-starter-ws :支援Spring Web Services。