转载:http://blog.csdn.net/linxingliang/article/details/52001744

在上一节使用是配置文件的方式进行使用druid,这里在扩散下使用编程式进行使用Druid,在上一节我们新建了一个类:DruidConfiguration我在这个类进行编码:

package com.kfit.base.servlet;

import Java.sql.SQLException;

import javax.sql.DataSource;

import org.springframework.beans.factory.annotation.Value;

import org.springframework.boot.context.embedded.FilterRegistrationBean;

importorg.springframework.boot.context.embedded.ServletRegistrationBean;

import org.springframework.context.annotation.Bean;

import org.springframework.context.annotation.Configuration;

import com.alibaba.druid.pool.DruidDataSource;

import com.alibaba.druid.support.http.StatViewServlet;

import com.alibaba.druid.support.http.WebStatFilter;

/**

* druid 配置.

*

* 这样的方式不需要添加注解:@ServletComponentScan

* @author Administrator

*

*/

@Configuration

public class DruidConfiguration {

/**

* 注册一个StatViewServlet

* @return

*/

@Bean

publicServletRegistrationBean DruidStatViewServle2(){

//org.springframework.boot.context.embedded.ServletRegistrationBean提供类的进行注册.

ServletRegistrationBeanservletRegistrationBean = new ServletRegistrationBean(newStatViewServlet(),"/druid2/*");

//添加初始化参数:initParams

//白名单:

servletRegistrationBean.addInitParameter("allow","127.0.0.1");

//IP黑名单 (存在共同时,deny优先于allow): 如果满足deny的话提示:Sorry, you arenot permitted to view this page.

servletRegistrationBean.addInitParameter("deny","192.168.1.73");

//登录查看信息的账号密码.

servletRegistrationBean.addInitParameter("loginUsername","admin2");

servletRegistrationBean.addInitParameter("loginPassword","123456");

//是否能够重置数据.

servletRegistrationBean.addInitParameter("resetEnable","false");

returnservletRegistrationBean;

}

/**

* 注册一个:filterRegistrationBean

* @return

*/

@Bean

publicFilterRegistrationBean druidStatFilter2(){

FilterRegistrationBeanfilterRegistrationBean = new FilterRegistrationBean(new WebStatFilter());

//添加过滤规则.

filterRegistrationBean.addUrlPatterns("/*");

//添加不需要忽略的格式信息.

filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid2/*");

returnfilterRegistrationBean;

}

/**

* 注册dataSouce,这里只是一个简单的例子,只注入了部分参数,其它自行注入。

* @param driver

* @param url

* @param username

* @param password

* @param maxActive

* @return

*/

@Bean

public DataSourcedruidDataSource(@Value("${spring.datasource.driverClassName}") Stringdriver,

@Value("${spring.datasource.url}") String url,

@Value("${spring.datasource.username}")String username,

@Value("${spring.datasource.password}") String password,

@Value("${spring.datasource.maxActive}") int maxActive

) {

DruidDataSourcedruidDataSource = new DruidDataSource();

druidDataSource.setDriverClassName(driver);

druidDataSource.setUrl(url);

druidDataSource.setUsername(username);

druidDataSource.setPassword(password);

druidDataSource.setMaxActive(maxActive);

System.out.println("DruidConfiguration.druidDataSource(),url="+url+",username="+username+",password="+password);

try {

druidDataSource.setFilters("stat, wall");

} catch(SQLException e) {

e.printStackTrace();

}

returndruidDataSource;

}

}

这里的区别在于加入一个方法:druidDataSource进行数据源的注入(当然这么一比较当然选择上一章节在application.properties配置的方式是比较好的,如果有特殊需求的话,也可以在这里进行注入)。

如果同时进行了编程式的注入和配置的注入,配置的就无效了。

最新文章

  1. 微信小程序开发日记——高仿知乎日报(上)
  2. Ubuntu下配置Samba服务器
  3. Kafka vs RocketMQ——单机系统可靠性-转自阿里中间件
  4. 关于unity3D的学习感想
  5. css3新增属性API
  6. Android 一键直接查看Sqlite数据库数据
  7. ajax views
  8. !! This tutorial was designed to help you with installation and configuration of OpenCV4Android SDK.
  9. C#Winfrom中,窗体加载时会自动执行一次控件的textchange事件,怎么让它不执行?
  10. SourceGrid zt
  11. The usage method of reference with bibtex in Latex【latex中参考文献的使用方法】
  12. WebLech是一个功能强大的Web站点下载与镜像工具
  13. webkit内核下的mouseup后mousemove自动触发问题及解决方法
  14. Java面试准备
  15. commons-logging的使用
  16. ORACLE 常见等待事件
  17. Python网络编程(3)——SocketServer模块与简单并发服务器
  18. java-信息安全(十三)-数字签名,代码签名【Java证书体系实现】
  19. DevExpress v18.1新版亮点——WPF篇(四)
  20. leetcode 73 矩阵置零 Python

热门文章

  1. iptables + Denyhost抵御暴力破解
  2. iOS属性文字NSAttributedString
  3. box-sizing重置
  4. 山贼集团 (group)
  5. 【ubuntu】配置zsh
  6. Vue的this.$root.Bus.$on事件被多次触发、多次监听的问题
  7. element ui form表单清空规则
  8. fetch上传cookie数据方法
  9. 后缀数组基本问题QAQ
  10. BZOJ 1497: [NOI2006]最大获利