zoukankan      html  css  js  c++  java
  • 【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语句后携带分号,实现多语句执行。
    2)可以执行批处理,同时发出多个SQL语句。
    zeroDateTimeBehavior=convertToNull
    日期类型由于误传0000-00-00(这时默认抛出
    java.sql.SQLException异常),转为NULL代替异常处理
    useSSL=false
    MySQL在高版本需要指明是否进行SSL连接
    示例:https://www.cnblogs.com/cheng2839/p/13596025.html
       SSL协议提供服务主要:
           1)认证用户服务器,确保数据发送到正确的服务器;    .
           2)加密数据,防止数据传输途中被窃取使用;
           3)维护数据完整性,验证数据在传输过程中是否丢失;
       当前支持SSL协议两层:
       	 SSL记录协议(SSL Record Protocol):建立靠传输协议(TCP)高层协议提供数据封装、压缩、加密等基本功能支持
    	 SSL握手协议(SSL Handshake Protocol):建立SSL记录协议用于实际数据传输始前通讯双进行身份认证、协商加密算法、 交换加密密钥等。

    --------------------------------------------------------------------End-------------------------------------------------------------------------

    ____________________________特此,勉励____________________________
    本文作者cheng2839
    本文链接https://www.cnblogs.com/cheng2839
    关于博主:评论和私信会在第一时间回复。
    版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
    声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
  • 相关阅读:
    TortoiseSVN 使用详细步骤(三):安装
    TortoiseSVN使用详细步骤(二)
    TortoiseSVN使用详细步骤(一)
    IIS7下访问ashx页面,显示404
    Learning Python 008 正则表达式-003 search()方法
    Learning Python 008 正则表达式-002 findall()方法
    Learning Python 008 正则表达式-001
    Learning Python 007 基本语句
    Learning Python 006 list(列表) 和 tuple(元组)
    Learning Python 005 字符串和编码
  • 原文地址:https://www.cnblogs.com/cheng2839/p/13600252.html
Copyright © 2011-2022 走看看