druid + mybatis-plus配置
spring:
datasource:
# druid相关的配置
druid:
url: "jdbc:mysql://120.25.121.220:8088/test?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai"
password: "root"
username: "root"
# 初始化连接大小
initial-size: 5
#最大连接池数量
max-active: 20
# 最小连接池数量
min-idle: 3
# 配置获取连接等待超时的时间 单位毫秒
max-wait: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
time-between-eviction-runs-millis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
# 测试连接
validation-query: select
# 申请连接的时候检测,建议配置为true,不影响性能,并且保证安全性
test-while-idle: true
# 获取连接时执行检测,建议关闭,影响性能
test-on-borrow: false
# 归还连接时执行检测,建议关闭,影响性能
test-on-return: false
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: true
# 配置监控统计拦截器 防火墙 日志配置
# stat监控数据库性能
# wall 用于防火墙
# 日志 slf4j logback
# log4j
# log4j2
# 配置多个英文逗号分隔
filters: stat,wall,slf4j
max-pool-prepared-statement-per-connection-size: 20
# 合并多个DruidDataSource的监控数据
use-global-data-source-stat: true
# 通过connectProperties属性来打开mergeSql功能;慢SQL记录 SQL优化
connect-properties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=500
# ===========监控配置===========
# WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter
web-stat-filter:
#是否启用StatFilter默认值false
enabled: true
# 拦截所有的
url-pattern: /*
# 排除一些不必要的url,比如*:js,/jslib/*等等:
exclusions: "*.js,*.gif,*.jpg,*.png,*.css,*.ico, /druid/*"
# 关闭和开启session 统计功能 默认关闭
# session-stat-enable: true
# sessionStatMaxCount是1000个
# session-stat-max-count: 1000
# 配置principalSessionName,使得druid能够知道当前的session的用户是谁
# principal-session-name:
# StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置
stat-view-servlet:
# 是否启用StatViewServlet默认值true
enabled: true
url-pattern: /druid/*
# 界面上有一个重置功能 执行这个操作之后,会导致所有计数器清零,重新计数 建议false
reset-enable: false
# 登录的后台的用户名,密码
login-username: admin
login-password: admin
# 访问控制,可以配置allow和deny这两个参数
# 配置格式 ip或者ip/子网掩码(24) 例如 192.168.2.112 ,192.168.2.112/24
# 注意 由于匹配规则不支持IPV6,配置了allow或者deny之后,会导致IPV6无法访问。
# allow:
# deny:
mybatis-plus:
#注册mapper.xml
mapper-locations: classpath:mapper/**/*.xml
#分布式id选择
global-config:
db-config:
id-type: auto
#给实体类起别名
type-aliases-package: com.smart.spring.boot10.domain.entity
HikariCP + mybatis-plus 配置
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://120.25.121.220:3306/db_shop?useUnicode=true&characterEncoding=utf-8&useSSL=false&serverTimezone=Asia/Shanghai
username: root
password: root
hikari:
# 是客户端等待连接池连接的最大毫秒数
connection-timeout: 30000
# 是允许连接在连接池中空闲的最长时间
minimum-idle: 10
# 配置最大池大小
maximum-pool-size: 65
# 是允许连接在连接池中空闲的最长时间(以毫秒为单位)
idle-timeout: 60000
# 池中连接关闭后的最长生命周期(以毫秒为单位)
max-lifetime: 600000
# 配置从池返回的连接的默认自动提交行为。默认值为true。
auto-commit: true
# 连接池的名称
pool-name: MyHikariCP
# 开启连接监测泄露
leak-detection-threshold: 5000
# 测试连接数据库
connection-test-query: SELECT 1
mybatis-plus:
mapper-locations: classpath:mapper/**/*.xml
#分布id的选择
global-config:
db-config:
id-type: auto
#给实体类起别名
type-aliases-package: com.smart.spring.boot.test.domain.entity
logging日志配置
logging:
config: "classpath:logback-spring-dev.xml"
level:
root: debug
com.smart.log.mapper: debug
com.smart.log.controller: debug
需要自定义xml文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration debug="true" scan="true" >
<!--
日志类型:
1、正常业务日志:日志文件为log-info.yyyy-MM-dd.log
2、错误日志:log-err.yyyy-MM.log
3、警告日志:log-warn.yyyy-MM.log
4、请求日志文件:http-log.yyyy-MM-dd.log
日志文件说明:日志文件以天为单位记录,单个大小为30M,一天超过30M的文件以索引0.1.2..标志,比如
log-info.yyyy-MM-dd.0.log,log-info.yyyy-MM-dd.1.log等等
追加器:
FILE-INFO:对应info以后的所有级别,包含业务、警告、错误信息
FILE-WARN:对应warn级别,包含警告信息
FILE-ERROR:对应error级别,包含错误信息
-->
<contextName>product</contextName>
<property name="LOG_PATH" value="${user.home}/webapp/"/>
<!-- %d{HH:mm:ss.SSS}——日志输出时间-->
<!-- %thread——输出日志的进程名字,这在Web应用以及异步任务处理中很有用-->
<!-- %-5level——日志级别,并且使用5个字符靠左对齐-->
<!-- %logger- ——日志输出者的名字-->
<!-- %msg——日志消息-->
<!-- %n——平台的换行符-->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} | %highlight(%-5level) | %boldRed(%thread) | %boldGreen(%logger) | %msg%n"/>
<appender class="ch.qos.logback.core.ConsoleAppender" name="STDOUT">
<encoder>
<pattern>${LOG_PATTERN}</pattern>
<charset>utf-8</charset>
</encoder>
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>debug</level>
</filter>
</appender>
<appender class="ch.qos.logback.core.rolling.RollingFileAppender" name="FILE-INFO">
<!--常规日志文件-->
<file>${LOG_PATH}/log-info.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--归档日志文件-->
<fileNamePattern>${LOG_PATH}/info/log-info.%d{yyyy-MM-dd}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>30MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>6</maxHistory>
</rollingPolicy>
<append>true</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>utf-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger Line:%-3L - %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
</filter>
</appender>
<!--警告日志文件-->
<appender name="FILE-WARN" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--常规日志文件-->
<file>${LOG_PATH}/log-warn.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--归档日志文件-->
<fileNamePattern>${LOG_PATH}/warn/log-warn.%d{yyyy-MM}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>30MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>6</maxHistory>
</rollingPolicy>
<append>true</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>utf-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger Line:%-3L - %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--错误日志文件-->
<appender name="FILE-ERROR" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!--常规日志文件-->
<file>${LOG_PATH}/log-err.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!--归档日志文件-->
<fileNamePattern>${LOG_PATH}/err/log-err.%d{yyyy-MM}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>30MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>6</maxHistory>
</rollingPolicy>
<append>true</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>utf-8</charset>
<pattern>${LOG_PATTERN}</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!--请求日志文件-->
<appender name="HTTP-INFO" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}/log-http.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${LOG_PATH}/http/log-http.%d{yyyy-MM}.%i.log</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
<maxFileSize>30MB</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<maxHistory>6</maxHistory>
</rollingPolicy>
<append>true</append>
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<charset>utf-8</charset>
<pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger Line:%-3L - %m%n</pattern>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>info</level>
</filter>
</appender>
<!-- 异步输出,异步的log片段必须在同步段后面,否则不起作用 -->
<appender name="FILE-INFO-ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>256</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="FILE-INFO"/>
</appender>
<appender name="FILE-WARN-ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>256</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="FILE-WARN"/>
</appender>
<appender name="FILE-ERROR-ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>256</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="FILE-ERROR"/>
</appender>
<!--根日志-->
<root level="info">
<appender-ref ref="STDOUT"/>
<appender-ref ref="FILE-INFO-ASYNC"/>
<appender-ref ref="FILE-WARN-ASYNC"/>
<appender-ref ref="FILE-ERROR-ASYNC"/>
</root>
</configuration>