自动配置微调
禁用模板缓存
默认情况下,除非重启应用程序,否则对 Thymeleaf 模板的变更是不会生效的。
这是因为 Thymeleaf 模板默认缓存。
这有助于改善应用程序的性能,因为模板只需编译一次,但在开发过程中就不能实时看到变更的效果了。
将 spring.thymeleaf.cache 设置为 false 就能禁用 Thymeleaf 模板缓存。
spring.thymeleaf.cache=false
一定要确保这个文件不会发布到生产环境,否则生产环境里的应用程序就无法享受模板缓存带来的性能提升了。
Spring Boot支持的其他模板也能关闭模板缓存,设置这些属性就好了:
- spring.freemarker.cache (Freemarker)
- spring.groovy.template.cache (Groovy模板)
- spring.velocity.cache (Velocity)
配置嵌入式服务器
监听端口
修改嵌入式的服务器(默认是Tomcat)监听端口:
server.port=8000
提供HTTPS服务
用 JDK 的 keytool 工具来创建一个密钥存储(keystore):
keytool -keystore mykeys.jks -genkey -alias tomcat -keyalg RSA
application.properties 配置:
server.port=8000
server.ssl.key-store=mykeys.jks
server.ssl.key-store-password=springboot
server.ssl.key-password=springboot
application.yml 配置:
server:
port: 8000
ssl:
key-store: mykeys.jks
key-store-password: springboot
key-password: springboot
key-store 配置:
- 用了一个
file://
开头的URL,从文件系统里加载该文件。 - 在应用程序的JAR文件里加载该文件,用
classpath: URL
来引用它。
配置日志
默认情况下,Spring Boot会用Logback(http://logback.qos.ch)来记录日志,并用 INFO 级别输出到控制台。
用其他日志实现替换Logback
如果决定使用Log4j或者Log4j2,那么你只需要修改依赖,引入对应该日志实现的起步依赖,同时排除 Logback。
Maven中排除掉根起步依赖传递引入的默认日志起步依赖,这样就能排除Logback:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
<exclusions>
<exclusion>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
</exclusion>
</exclusions>
</dependency>
排除默认日志的起步依赖后,就可以引入你想用的日志实现的起步依赖了。
在Maven里添加Log4j:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j</artifactId>
</dependency>
在Maven里添加Log4j2:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
logback.xml
要完全掌握日志配置,可以在Classpath的根目录(src/main/resources)里创建logback.xml文件。
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<logger name="root" level="INFO"/>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
自定义日志配置
如果想要完全掌控日志配置,但是又不想用logback.xml作为Logback配置的名字,可以通过 logging.config 属性指定自定义的名字:
logging:
config:
classpath:logging-config.xml
设置日志级别
创建以 logging.level 开头的属性,后面是要日志名称。
如果根日志级别要设置为 WARN ,但Spring Security的日志要用 DEBUG 级别,可以在application.yml里加入以下内容:
logging:
level:
root: WARN
org:
springframework:
security: DEBUG
logging:
level:
root: WARN
org.springframework.security: DEBUG
写入日志文件
假设你想把日志写到位于/var/logs/目录里的BookWorm.log文件里。
使用 logging.path 和 loggin.file 属性就行了:
logging:
path: /var/logs/
file: BookWorm.log
logging.path=/var/logs/
logging.file=BookWorm.log
默认情况下,日志文件的大小达到10MB时会切分一次。
配置数据源
配置MySQL数据库:
spring:
datasource:
url: jdbc:mysql://localhost/readinglist
username: dbuser
password: dbpass
自定义驱动
通常你都无需指定JDBC驱动,Spring Boot会根据数据库URL识别出需要的驱动。
spring.datasource.driver-class-name=com.mysql.jdbc.Driver