一、关闭某个自动配置
通过上一篇 @SpringBootApplication 下的 @EnableAutoConfiguration 可知,Spring Boot 会根据项目中的jar包依赖,自动做出配置,Spring Boot支持的部分自动配置如下图(非常多):
假如不需要Spring Boot 自动配置,想关闭某一项的自动配置,该如何配置呢?
例如:不想自动配置Redis,想自己动手配置,通过查看 @SpringBootApplication 的源码可以看出,关闭特定的自动配置应该使用 @SpringBootApplication 下的 exclude 参数,现以关闭 Redis 自动配置为例:
@SpringBootApplication(exclude={RedisAutoConfiguration.class})
二、制定启动banner
在启动Spring Boot 项目的时候,我们在控制台看到如下图的默认启动图案。
如果想自己指定启动的图案应该如何配置呢?
- 在浏览器中打开网站http://patorjk.com/software/taag,如下图:
其中,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 支持很多参数的配置与参数值的修改,关于其他配置参数的详细说明和描述可以查看官方的文档说明:https://docs.spring.io/spring-boot/docs/1.5.6.RELEASE/reference/htmlsingle/#common-application-properties
四、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。