文章目录
背景
《Spring全家桶的深入学习(一):Spring起步》
《Spring全家桶的深入学习(二):基于SpringMVC开发web应用》
《Spring全家桶的深入学习(三):实现数据持久化》
《Spring全家桶的深入学习(四):使用Spring Data实现数据持久化》
《Spring全家桶的深入学习(五):使用Spring Security安全框架保护web应用》
- 在前五篇文章中已经实现了一个简单的用户邮箱登记的web应用,并将数据保存到mysql数据库中,并利用安全框架对web页面进行保护及实现了管理员的注册登录。
- 另外,由于使用了Spring Boot的自动配置,我们仅仅通过一个application.properties文件,就实现了数据库的访问配置与前端页面的基础设置。
- 本章将了解Spring的配置属性及完成自定义的配置
Spring的环境抽象(Environment)
Spring的环境抽象是各种配置属性的一站式服务。它抽取了原始的属性,这样需要这些属性的bean就可以从Spring本身中获取了。Spring环境会拉取多个属性源,包括:
- JVM系统属性;
- 操作系统环境变量;
- 命令行参数;
- 应用属性配置文件。
通过应用属性配置文件完成Spring的环境配置
- 我们回顾下原web应用中的application.properties文件:
###数据源配置
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=net.sf.log4jdbc.sql.jdbcapi.DriverSpy
spring.datasource.url=jdbc:log4jdbc:mysql://localhost:3306/user_info?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
#thymelea模板配置
spring.thymeleaf.prefix=classpath:/templates/
spring.thymeleaf.suffix=.html
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
spring.thymeleaf.cache=false
spring.resources.chain.strategy.content.enabled=true
spring.resources.chain.strategy.content.paths=/**
- Spring Boot引入了具有层次关系的yml格式的配置文件:
spring:
port:8080
显然具有层次关系的配置文件更易于理解与书写,接下来我们将使用application.yml取代application.properties完成各种属性配置。
配置数据源
###数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
username: root
password: root
driver-class-name: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
url: jdbc:log4jdbc:mysql://localhost:3306/user_info?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false&allowPublicKeyRetrieval=true
配置模板引擎
#thymelea模板配置
thymeleaf:
prefix: classpath:/templates/
suffix: .html
mode: HTML5
encoding: UTF-8
content-type: text/html
cache: false
配置日志
- 默认情况下,Spring Boot通过Logback配置日志,日志会以INFO级别写入到控制台中,我们希望重新配置显示日志的格式;
- 同时我们希望通过监控sql日志输出到控制台,并将输出的信息进行筛选打印;
- 首先需引入log4jdbc依赖
<dependency>
<groupId>org.bgee.log4jdbc-log4j2