咳咳,今天我们做些简单而实用的东西,使用springboot 整合alibaba的driud数据库监控工具。
alibaba已经提供了spring-boot-starter的jar包了。先看pom.xml加个依赖~~ (druid.version自己找哈) 。

<!--阿里巴巴druid数据库管理-->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid-spring-boot-starter</artifactId>
<version>${druid.version}</version>
</dependency>

配置信息是少不了滴~~

# 开发环境下配置
spring:
datasource:
druid:
url: jdbc:mysql://localhost:3306/test?allowMultiQueries:true&characterEncoding:UTF-8&zeroDateTimeBehavior:convertToNull
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
# 连接池配置
initial-size: 1
max-active: 20
min-idle: 1
max-wait: 10000
pool-prepared-statements: true
max-open-prepared-statements: 20
validation-query: SELECT 1 FROM DUAL
validation-query-timeout: 5000
test-on-borrow: false
test-on-return: false
test-while-idle: true
time-between-eviction-runs-millis: 60000
min-evictable-idle-time-millis: 30000
max-evictable-idle-time-millis: 60000
removeAbandoned: true
removeAbandonedTimeout: 1800
connectionProperties: druid.stat.mergeSql=true;druid.stat.slowSqlMillis=5000
max-pool-prepared-statement-per-connection-size: 20
filters: stat,wall #filters: #配置多个英文逗号分隔(统计,sql注入,log4j过滤)
type: com.alibaba.druid.pool.DruidDataSource

接下来是重点,重点,重点......@Configuration注解的配置类

@Configuration
public class DruidConfig { private static final Logger logger = LoggerFactory.getLogger(DruidConfig.class); @Autowired
private AppConfig appConfig; @Value("${spring.datasource.druid.url}")
private String dbUrl; @Value("${spring.datasource.druid.username}")
private String username; @Value("${spring.datasource.druid.password}")
private String password; @Value("${spring.datasource.druid.driver-class-name}")
private String driverClassName; @Value("${spring.datasource.druid.initial-size}")
private int initialSize; @Value("${spring.datasource.druid.min-idle}")
private int minIdle; @Value("${spring.datasource.druid.max-active}")
private int maxActive; @Value("${spring.datasource.druid.max-wait}")
private int maxWait; @Value("${spring.datasource.druid.time-between-eviction-runs-millis}")
private int timeBetweenEvictionRunsMillis; @Value("${spring.datasource.druid.min-evictable-idle-time-millis}")
private int minEvictableIdleTimeMillis; @Value("${spring.datasource.druid.validation-query}")
private String validationQuery; @Value("${spring.datasource.druid.test-while-idle}")
private boolean testWhileIdle; @Value("${spring.datasource.druid.test-on-borrow}")
private boolean testOnBorrow; @Value("${spring.datasource.druid.test-on-return}")
private boolean testOnReturn; @Value("${spring.datasource.druid.pool-prepared-statements}")
private boolean poolPreparedStatements; @Value("${spring.datasource.druid.max-pool-prepared-statement-per-connection-size}")
private int maxPoolPreparedStatementPerConnectionSize; @Value("${spring.datasource.druid.filters}")
private String filters; @Value("{spring.datasource.druid.connection-properties}")
private String connectionProperties; @Bean //声明其为Bean实例
@Primary //在同样的DataSource中,首先使用被标注的DataSource
public DataSource dataSource() {
DruidDataSource datasource = new DruidDataSource();
datasource.setUrl(dbUrl);
datasource.setUsername(username);
datasource.setPassword(password);
datasource.setDriverClassName(driverClassName);
//configuration
datasource.setInitialSize(initialSize);
datasource.setMinIdle(minIdle);
datasource.setMaxActive(maxActive);
datasource.setMaxWait(maxWait);
datasource.setTimeBetweenEvictionRunsMillis(timeBetweenEvictionRunsMillis);
datasource.setMinEvictableIdleTimeMillis(minEvictableIdleTimeMillis);
datasource.setValidationQuery(validationQuery);
datasource.setTestWhileIdle(testWhileIdle);
datasource.setTestOnBorrow(testOnBorrow);
datasource.setTestOnReturn(testOnReturn);
datasource.setPoolPreparedStatements(poolPreparedStatements);
datasource.setMaxPoolPreparedStatementPerConnectionSize(maxPoolPreparedStatementPerConnectionSize);
try {
datasource.setFilters(filters);
} catch (Exception e) {
logger.error("druid configuration initialization filter", e);
}
datasource.setConnectionProperties(connectionProperties); return datasource;
} @Bean
public ServletRegistrationBean druidServlet() {
//logger.info("init Druid Servlet Configuration ");
ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();
servletRegistrationBean.setServlet(new StatViewServlet());
servletRegistrationBean.addUrlMappings("/druid/*");
Map<String, String> initParameters = new HashMap<>();
initParameters.put("loginUsername", appConfig.getDruidUserName());// 用户名
initParameters.put("loginPassword", appConfig.getDruidPassword());// 密码
initParameters.put("resetEnable", appConfig.getDruidResetAll());// 禁用HTML页面上的“Reset All”功能
initParameters.put("allow", ""); // IP白名单 (没有配置或者为空,则允许所有访问)
//initParameters.put("deny", "192.168.20.38");// IP黑名单 (存在共同时,deny优先于allow)
servletRegistrationBean.setInitParameters(initParameters);
return servletRegistrationBean;
} @Bean
public FilterRegistrationBean druidWebStatViewFilter() {
FilterRegistrationBean registrationBean = new FilterRegistrationBean(new WebStatFilter());
registrationBean.addInitParameter("urlPatterns", "/*");
registrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.bmp,*.png,*.css,*.ico,/druid/*");
return registrationBean;
}
}

这里解释说下,AppConfig类是我自定义的一些配置项目,和集成druid没有关系噢。
到这就可以写个连接数据库查询测试下druid了,在地址栏输入localhost:8080/druid就能访问druid的登录页面了。

最新文章

  1. java程序操作Geometry对象
  2. 2016huasacm暑假集训训练三 B-Frogger
  3. jQuery中的事件机制深入浅出
  4. 通过XmlSerializer 实现XML的序列化与反序列化
  5. 默认选择radio的第一个
  6. C,C++容易被忽略的问题
  7. dreamweaver中用正则表达式查找替换批量删除 tppabs标签的方法
  8. zhuan:windows用一键安装包安装(推荐)-禅道
  9. JS delete 用法(删除对象属性及变量)
  10. MyBatis 异常 集锦
  11. PHP导出生成CSV文件
  12. JAVAEE学习——struts2_01:简介、搭建、架构、配置、action类详解和练习:客户列表
  13. zoj2818 Root of the Problem 简单数学 开方
  14. NoSQL:linux操作memcached
  15. Javascript高级编程学习笔记(77)—— 表单(5)过滤输入
  16. Use the Microsoft Symbol for VS and Windbg
  17. java8 lambda方法引用
  18. php验证码--图片
  19. PHP 5.6 开启CURL HTTPS 类型
  20. MSSQL 数据库语句原来是区分大小写的啊

热门文章

  1. 新手写AIDL构建失败:...aidl.exe&#39;&#39; finished with non-zero exit value 1
  2. Kotlin lateinit 和 by lazy 的区别
  3. liunx下文件授权可执行权限chmod
  4. orcale开篇
  5. Ubuntu 14.04上安装Riak
  6. C# 的两种debug 方法
  7. node安装启动服务
  8. 关于Mybatis的pagehelper使用遇到的坑
  9. zabbix-3.4-快速入门
  10. 当您在 64 位 Windows 上运行 Regsvr32.exe 时出现错误信息