博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Spring Boot 2.0配置druid
阅读量:7018 次
发布时间:2019-06-28

本文共 10185 字,大约阅读时间需要 33 分钟。

hot3.png

第一种方式:

1、引入相关的包,刚开始没引入log4j包,一直报错。

com.alibaba
druid
1.0.18
log4j
log4j
1.2.17

2、添加druid相关的属性配置,具体各属性的意思,可以找官网或百度上去搜。

spring:  datasource:    driver-class-name: com.mysql.jdbc.Driver    url: jdbc:mysql://localhost:3306/SpringBoot?useUnicode=true&characterEncoding=UTF-8&useSSL=false    username: root    password: root    type: com.alibaba.druid.pool.DruidDataSource    initialSize: 5    minIdle: 5    maxActive: 20    maxWait: 60000    timeBetweenEvictionRunsMillis: 60000    minEvictableIdleTimeMillis: 300000    validationQuery: SELECT1FROMDUAL    testWhileIdle: true    testOnBorrow: false    testOnReturn: false    filters: stat,wall,log4j    logSlowSql: true

3、将DruidConfig配置类注入到spring boot中

@Configurationpublic class DruidConfiguration {    private static final String DB_PREFIX = "spring.datasource";    //读取相关的属性配置    @ConfigurationProperties(prefix = DB_PREFIX)    @Bean    public DataSource dataSource(){        return new DruidDataSource();    }    //配置一个管理后台的Servlet,配置Druid的监控    @Bean    public ServletRegistrationBean statViewServlet(){        ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*");        Map
initParams = new HashMap
(); initParams.put("loginUsername","admin"); initParams.put("loginPassword","123456"); bean.setInitParameters(initParams); return bean; } //配置一个web监控的filter @Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map
initParams = new HashMap<>(); initParams.put("exclusions","*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; }}

运行即可。

第二种方式:

   均源于阿里参考:

1、在 Spring Boot 项目中加入druid-spring-boot-starter依赖

com.alibaba
druid-spring-boot-starter
1.1.10

2、添加配置

spring.datasource.url= spring.datasource.username=spring.datasource.password=# ...其他配置(可选,不是必须的,使用内嵌数据库的话上述三项也可省略不填)

配置属性

Druid Spring Boot Starter 配置属性的名称完全遵照 Druid,你可以通过 Spring Boot 配置文件来配置Druid数据库连接池和监控,如果没有配置则使用默认值。

  • JDBC 配置
spring.datasource.druid.url= # 或spring.datasource.url= spring.datasource.druid.username= # 或spring.datasource.username=spring.datasource.druid.password= # 或spring.datasource.password=spring.datasource.druid.driver-class-name= #或 spring.datasource.driver-class-name=
  • 连接池配置
spring.datasource.druid.initial-size=spring.datasource.druid.max-active=spring.datasource.druid.min-idle=spring.datasource.druid.max-wait=spring.datasource.druid.pool-prepared-statements=spring.datasource.druid.max-pool-prepared-statement-per-connection-size= spring.datasource.druid.max-open-prepared-statements= #和上面的等价spring.datasource.druid.validation-query=spring.datasource.druid.validation-query-timeout=spring.datasource.druid.test-on-borrow=spring.datasource.druid.test-on-return=spring.datasource.druid.test-while-idle=spring.datasource.druid.time-between-eviction-runs-millis=spring.datasource.druid.min-evictable-idle-time-millis=spring.datasource.druid.max-evictable-idle-time-millis=spring.datasource.druid.filters= #配置多个英文逗号分隔....//more
  • 监控配置
# WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilterspring.datasource.druid.web-stat-filter.enabled= #是否启用StatFilter默认值truespring.datasource.druid.web-stat-filter.url-pattern=spring.datasource.druid.web-stat-filter.exclusions=spring.datasource.druid.web-stat-filter.session-stat-enable=spring.datasource.druid.web-stat-filter.session-stat-max-count=spring.datasource.druid.web-stat-filter.principal-session-name=spring.datasource.druid.web-stat-filter.principal-cookie-name=spring.datasource.druid.web-stat-filter.profile-enable=# StatViewServlet配置,说明请参考Druid Wiki,配置_StatViewServlet配置spring.datasource.druid.stat-view-servlet.enabled= #是否启用StatViewServlet默认值truespring.datasource.druid.stat-view-servlet.url-pattern=spring.datasource.druid.stat-view-servlet.reset-enable=spring.datasource.druid.stat-view-servlet.login-username=spring.datasource.druid.stat-view-servlet.login-password=spring.datasource.druid.stat-view-servlet.allow=spring.datasource.druid.stat-view-servlet.deny=# Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置spring.datasource.druid.aop-patterns= # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔

Druid Spring Boot Starter 不仅限于对以上配置属性提供支持, 内提供setter方法的可配置属性都将被支持。你可以参考WIKI文档或通过IDE输入提示来进行配置。配置文件的格式你可以选择.properties.yml,效果是一样的,在配置较多的情况下推荐使用.yml

注入配置类

@Configuration@ConditionalOnClass(com.alibaba.druid.pool.DruidDataSource.class)@ConditionalOnProperty(name = "spring.datasource.type", havingValue = "com.alibaba.druid.pool.DruidDataSource", matchIfMissing = true)public class DruidDataSource {    @Bean    @ConfigurationProperties("spring.datasource.druid")    public DataSource dataSourceOne() {        return DruidDataSourceBuilder.create().build();    }}

 

 

如何配置多数据源

  1. 添加配置
spring.datasource.url=spring.datasource.username=spring.datasource.password=# Druid 数据源配置,继承spring.datasource.* 配置,相同则覆盖...spring.datasource.druid.initial-size=5spring.datasource.druid.max-active=5...# Druid 数据源 1 配置,继承spring.datasource.druid.* 配置,相同则覆盖...spring.datasource.druid.one.max-active=10spring.datasource.druid.one.max-wait=10000...# Druid 数据源 2 配置,继承spring.datasource.druid.* 配置,相同则覆盖...spring.datasource.druid.two.max-active=20spring.datasource.druid.two.max-wait=20000...

强烈注意:Spring Boot 2.X 版本不再支持配置继承,多数据源的话每个数据源的所有配置都需要单独配置,否则配置不会生效

  1. 创建数据源
@Primary@Bean@ConfigurationProperties("spring.datasource.druid.one")public DataSource dataSourceOne(){    return DruidDataSourceBuilder.create().build();}@Bean@ConfigurationProperties("spring.datasource.druid.two")public DataSource dataSourceTwo(){    return DruidDataSourceBuilder.create().build();}

如何配置 Filter

你可以通过 spring.datasource.druid.filters=stat,wall,log4j ... 的方式来启用相应的内置Filter,不过这些Filter都是默认配置。如果默认配置不能满足你的需求,你可以放弃这种方式,通过配置文件来配置Filter,下面是例子。

# 配置StatFilter spring.datasource.druid.filter.stat.db-type=h2spring.datasource.druid.filter.stat.log-slow-sql=truespring.datasource.druid.filter.stat.slow-sql-millis=2000# 配置WallFilter spring.datasource.druid.filter.wall.enabled=truespring.datasource.druid.filter.wall.db-type=h2spring.datasource.druid.filter.wall.config.delete-allow=falsespring.datasource.druid.filter.wall.config.drop-table-allow=false# 其他 Filter 配置不再演示

目前为以下 Filter 提供了配置支持,请参考文档或者根据IDE提示(spring.datasource.druid.filter.*)进行配置。

  • StatFilter
  • WallFilter
  • ConfigFilter
  • EncodingConvertFilter
  • Slf4jLogFilter
  • Log4jFilter
  • Log4j2Filter
  • CommonsLogFilter

要想使自定义 Filter 配置生效需要将对应 Filter 的 enabled 设置为 true ,Druid Spring Boot Starter 默认会启用 StatFilter,你也可以将其 enabled 设置为 false 来禁用它。

 

网上摘抄:

# JDBC 配置(驱动类自动从url的mysql识别,数据源类型自动识别)# 或spring.datasource.url=spring.datasource.druid.url=jdbc:mysql://192.168.1.1:3306/test?useUnicode=true&characterEncoding=UTF8# 或spring.datasource.username=spring.datasource.druid.username=root# 或spring.datasource.password=spring.datasource.druid.password=root#或 spring.datasource.driver-class-name=#spring.datasource.druid.driver-class-name=com.mysql.jdbc.Driver#连接池配置(通常来说,只需要修改initialSize、minIdle、maxActive# 如果用Oracle,则把poolPreparedStatements配置为true,mysql可以配置为false。分库分表较多的数据库,建议配置为false。removeabandoned不建议在生产环境中打开如果用SQL Server,建议追加配置)spring.datasource.druid.initial-size=1spring.datasource.druid.max-active=20spring.datasource.druid.min-idle=1# 配置获取连接等待超时的时间spring.datasource.druid.max-wait=60000 #打开PSCache,并且指定每个连接上PSCache的大小spring.datasource.druid.pool-prepared-statements=truespring.datasource.druid.max-pool-prepared-statement-per-connection-size=20#spring.datasource.druid.max-open-prepared-statements=和上面的等价spring.datasource.druid.validation-query=SELECT 'x'#spring.datasource.druid.validation-query-timeout=spring.datasource.druid.test-on-borrow=falsespring.datasource.druid.test-on-return=falsespring.datasource.druid.test-while-idle=true#配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒spring.datasource.druid.time-between-eviction-runs-millis=60000#配置一个连接在池中最小生存的时间,单位是毫秒spring.datasource.druid.min-evictable-idle-time-millis=300000#spring.datasource.druid.max-evictable-idle-time-millis=#配置多个英文逗号分隔spring.datasource.druid.filters= stat# WebStatFilter配置,说明请参考Druid Wiki,配置_配置WebStatFilter#是否启用StatFilter默认值truespring.datasource.druid.web-stat-filter.enabled=truespring.datasource.druid.web-stat-filter.url-pattern=/*spring.datasource.druid.web-stat-filter.exclusions=*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*spring.datasource.druid.web-stat-filter.session-stat-enable=falsespring.datasource.druid.web-stat-filter.session-stat-max-count=1000spring.datasource.druid.web-stat-filter.principal-session-name=adminspring.datasource.druid.web-stat-filter.principal-cookie-name=adminspring.datasource.druid.web-stat-filter.profile-enable=true# StatViewServlet配置#展示Druid的统计信息,StatViewServlet的用途包括:1.提供监控信息展示的html页面2.提供监控信息的JSON API#是否启用StatViewServlet默认值truespring.datasource.druid.stat-view-servlet.enabled=true#根据配置中的url-pattern来访问内置监控页面,如果是上面的配置,内置监控页面的首页是/druid/index.html例如:#http://110.76.43.235:9000/druid/index.html#http://110.76.43.235:8080/mini-web/druid/index.htmlspring.datasource.druid.stat-view-servlet.url-pattern=/druid/*#允许清空统计数据spring.datasource.druid.stat-view-servlet.reset-enable=truespring.datasource.druid.stat-view-servlet.login-username=adminspring.datasource.druid.stat-view-servlet.login-password=admin#StatViewSerlvet展示出来的监控信息比较敏感,是系统运行的内部情况,如果你需要做访问控制,可以配置allow和deny这两个参数#deny优先于allow,如果在deny列表中,就算在allow列表中,也会被拒绝。如果allow没有配置或者为空,则允许所有访问#配置的格式#
#或者
/
其中128.242.127.1/24#24表示,前面24位是子网掩码,比对的时候,前面24位相同就匹配,不支持IPV6。spring.datasource.druid.stat-view-servlet.allow=spring.datasource.druid.stat-view-servlet.deny=128.242.127.1/24,128.242.128.1# Spring监控配置,说明请参考Druid Github Wiki,配置_Druid和Spring关联监控配置spring.datasource.druid.aop-patterns= # Spring监控AOP切入点,如x.y.z.service.*,配置多个英文逗号分隔#配置日志#不同目录下的日志可配置不同级别 info,errorlogging.level.com.euler: debug logging.level.org.springfromework.web: info

转载于:https://my.oschina.net/u/737121/blog/1922101

你可能感兴趣的文章
cisco acs 搭建radius
查看>>
jQuery|隐藏和显示
查看>>
VMware驱动程序"vmci.sys"的版本不正确 怎么解决
查看>>
除了默认的docker0网桥,启动Docker服务怎么指定使用的网桥
查看>>
Maven Tips
查看>>
win7下匿名ftp的搭建
查看>>
嵌入式开发 NVIDIA官方资源汇总
查看>>
Saltstack配置管理-业务引用haproxy
查看>>
jQuery|event的属性和方法
查看>>
linux 下将tomcat注册成服务并开机启动
查看>>
织梦 dedecms 文章内容 body 内部超链接替换为空
查看>>
js格式化日期
查看>>
详解BSCI实验五、配置PIM auto-rp
查看>>
SO_DONTROUTE和SO_BINDTODEVICE的深层次分析
查看>>
WINserver路由服务之多网段管控
查看>>
网络基础CCNP|SDN与日志
查看>>
Python3.X Socket 一个编码与解码的坑
查看>>
vs2015未能正确加载“ProviderPackage”包。
查看>>
PHP带头大哥讲解几种综合PHP网络服务器系统的选择!
查看>>
MySQL数据表所有操作命令
查看>>