【SpringBoot】application.properties配置文件详解
本文将详细介绍SpringCloud中配置中心或者启动配置application.properties文件
如下配置文件:
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.url=jdbc:mysql://x.x.x.x:3306/databasename?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull spring.datasource.username=uname spring.datasource.password=pword spring.datasource.driverClassName=com.mysql.jdbc.Driver # 初始化大小,最小,最大 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=150 # 配置获取连接等待超时的时间 spring.datasource.maxWait=60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 FROM DUAL spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false # 打开PSCache,并且指定每个连接上PSCache的大小 spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 spring.datasource.filters=stat,log4j # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 合并多个DruidDataSource的监控数据 #spring.datasource.useGlobalDataSourceStat=true
#redis配置 spring.redis.password=redispass spring.redis.port=6379 spring.redis.host=redis.${DOMAIN} spring.redis.expire=10 spring.redis.pool.max-active=1024 spring.redis.pool.max-wait=10000 spring.redis.pool.max-idle=200 spring.redis.pool.min-idle=50 spring.redis.timeout=10000 spring.redis.database=1 dialect=mysql hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=10000 #ribbon.ReadTimeout=120000 #ribbon.ConnectTimeout=120000 #切面日志开关,aspect.shortcircuit=true表示关闭,aspect.shortcircuit=false表示开启,默认请配置为false,开启日志切面 aspect.shortcircuit=false
#上传文件的最大单个文件大小 spring.http.multipart.maxFileSize=5MB
#日志输出级别 logging.level.com.baiwang.xxx=DEBUG
一、数据源配置 spring.datasource.XXX
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
spring.datasource.url=jdbc:mysql://x.x.x.x:3306/databasename?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull spring.datasource.username=uname spring.datasource.password=pword
spring.datasource.driverClassName=com.mysql.jdbc.Driver
#以下为orcle
#spring.datasource.url=jdbc:oracle:thin:@oracle1.test.xxx.com:1521:testdb1
#spring.datasource.driverClassName=oracle.jdbc.driver.OracleDriver
①首先,Spring Boot默认的数据源是org.apache.tomcat.jdbc.pool.DataSource
在实际开发中我们可能需要使用我们比较熟悉的数据源或者性能比比较高的数据源,比如Druid,那么很自然的我们就不能使用默认的数据源,这时候
spring.datasource.type就诞生了。
springboot对该属性的支持情况:1.2版本不支持,1.3版本支持,1.4.0版本不支持,1.4.1重新支持
②其次,Druid是Java语言中最好的数据库连接池,并且能够提供强大的监控和扩展功能。
业界把 Druid 和 HikariCP 做对比后,虽说 HikariCP 的性能比 Druid 高,但是因为 Druid 包括很多维度的统计和分析功能,所以这也是大家都选择使用它的原因。
③下面来说明如何在 Spring Boot 中配置使用Druid
1)添加Maven依赖 (或jar包)
<dependency> <groupId>com.alibaba</groupId> <artifactId>druid</artifactId> <version>1.0.20</version> </dependency>
2)配置数据源相关信息
# 数据库访问配置 # 主数据源,默认的 spring.datasource.type=com.alibaba.druid.pool.DruidDataSource spring.datasource.driver-class-name=com.mysql.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=123456 # 下面为连接池的补充设置,应用到上面所有数据源中 # 初始化大小,最小,最大 spring.datasource.initialSize=5 spring.datasource.minIdle=5 spring.datasource.maxActive=20 # 配置获取连接等待超时的时间 spring.datasource.maxWait=60000 # 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 spring.datasource.timeBetweenEvictionRunsMillis=60000 # 配置一个连接在池中最小生存的时间,单位是毫秒 spring.datasource.minEvictableIdleTimeMillis=300000 spring.datasource.validationQuery=SELECT 1 FROM DUAL spring.datasource.testWhileIdle=true spring.datasource.testOnBorrow=false spring.datasource.testOnReturn=false # 打开PSCache,并且指定每个连接上PSCache的大小 spring.datasource.poolPreparedStatements=true spring.datasource.maxPoolPreparedStatementPerConnectionSize=20 # 配置监控统计拦截的filters,去掉后监控界面sql无法统计,'wall'用于防火墙 spring.datasource.filters=stat,wall,log4j # 通过connectProperties属性来打开mergeSql功能;慢SQL记录 spring.datasource.connectionProperties=druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000 # 合并多个DruidDataSource的监控数据 #spring.datasource.useGlobalDataSourceStat=true
3)这时候启动应用就可以看到看到打印信息就是使用我们配置的数据源了:
[main] com.alibaba.druid.pool.DruidDataSource : {dataSource-1} inited
4)数据库访问方式介绍
?useUnicode=true&allowMultiQueries=true&characterEncoding=utf-8&zeroDateTimeBehavior=convertToNull
?useUnicode=true&characterEncoding=utf-8&useSSL=false
如上配置示例:
useUnicode=true&characterEncoding=UTF-8 |
这个代表允许用户自己设定数据库编码,设置为UTF-8 |
useOldAliasMetadataBehavior=true |
这个代表数据库里面允许有别名 |
allowMultiQueries=true |
1)可以在sql语句后携带分号,实现多语句执行。 |
zeroDateTimeBehavior=convertToNull |
日期类型由于误传0000-00-00(这时默认抛出 |
useSSL=false |
MySQL在高版本需要指明是否进行SSL连接 |
SSL协议提供服务主要:
1)认证用户服务器,确保数据发送到正确的服务器; .
2)加密数据,防止数据传输途中被窃取使用;
3)维护数据完整性,验证数据在传输过程中是否丢失;
当前支持SSL协议两层:
SSL记录协议(SSL Record Protocol):建立靠传输协议(TCP)高层协议提供数据封装、压缩、加密等基本功能支持
SSL握手协议(SSL Handshake Protocol):建立SSL记录协议用于实际数据传输始前通讯双进行身份认证、协商加密算法、 交换加密密钥等。
--------------------------------------------------------------------End-------------------------------------------------------------------------
本文链接:https://www.cnblogs.com/cheng2839
关于博主:评论和私信会在第一时间回复。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!