一、druid

1.添加依赖

引入依赖

<dependency><groupId>com.alibaba</groupId><artifactId>druid</artifactId><version>1.2.8</version></dependency><!-- jdbc --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><!-- mybatis --><dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-starter</artifactId><version>1.3.1</version></dependency><!-- mysql驱动 --><dependency><groupId>mysql</groupId><artifactId>mysql-connector-java</artifactId></dependency>

2.配置

  • 配置yml文件
spring:datasource:username: rootpassword: rooturl: jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf8&useSSL=false&serverTimezone=UTC&driver-class-name: com.mysql.cj.jdbc.Drivertype: com.alibaba.druid.pool.DruidDataSource
  • 配置数据源的三种方式
    1.在配置类中创建一个数据源
@Value("spring.datasource.url")private String url;@Value("spring.datasource.username")private String userName;@Value("spring.datasource.password")private String password;@Value("spring.datasource.driver-class-name")private String driverClassName;@Value("spring.datasource.type")private String type;@Beanpublic DataSource dataSource(){DruidDataSource dataSource = new DruidDataSource();dataSource.setUrl(url);dataSource.setUsername(userName);dataSource.setPassword(password);dataSource.setDriverClassName(driverClassName);dataSource.setDbType(type);return dataSource;}

2.使用注解ConfigurationProperties

@Bean@ConfigurationProperties(prefix = "spring.datasource")public DataSource dataSource(){return new DruidDataSource();}

3.使用DataSourceProperties构造者设计模式

 @Beanpublic DataSource dataSource(DataSourceProperties properties){return properties.initializeDataSourceBuilder().build();}

二、监控台配置

1.创建配置类

/*** 监控台的servlet*/@Beanpublic ServletRegistrationBean statViewServlet() {ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean();servletRegistrationBean.setServlet(new StatViewServlet());servletRegistrationBean.addUrlMappings("/druid/*")// 添加IP白名单servletRegistrationBean.addInitParameter("allow", "127.0.0.1");// 添加IP黑名单,当白名单和黑名单重复时,黑名单优先级更高// servletRegistrationBean.addInitParameter("deny", "127.0.0.1");// 添加控制台管理用户servletRegistrationBean.addInitParameter("loginUsername", "admin");servletRegistrationBean.addInitParameter("loginPassword", "123456");// 是否能够重置数据servletRegistrationBean.addInitParameter("resetEnable", "false");return servletRegistrationBean;}/*** 配置服务过滤器 :监控哪些访问* @return 返回过滤器配置对象*/@Beanpublic FilterRegistrationBean statFilter() {FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();filterRegistrationBean.setFilter(new WebStatFilter());// 添加过滤规则filterRegistrationBean.addUrlPatterns("/*");// 忽略过滤格式filterRegistrationBean.addInitParameter("exclusions", "*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*,");return filterRegistrationBean;}

本地访问http://localhost:8080/druid

三、Druid常用启动器

1.添加依赖

添加常用启动器依赖

<dependency><groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.2.8</version></dependency>

2.配置

依赖添加完成后,不需要创建数据源,可直接使用,但是访问Druid的控制台,却无法访问。
大致查看源码:

//创建一个DruidDataSourceWrapper数据源
@ConditionalOnMissingBeanpublic DataSource dataSource() {LOGGER.info("Init DruidDataSource");return new DruidDataSourceWrapper();}
@ConfigurationProperties("spring.datasource.druid")
public class DruidDataSourceWrapper extends DruidDataSource implements InitializingBean {@Autowiredprivate DataSourceProperties basicProperties;public DruidDataSourceWrapper() {}//重写InitializingBean方法,springboot启动时,会自动加载 public void afterPropertiesSet() throws Exception {if(super.getUsername() == null) {//从对象basicProperties中拿设置的用户名super.setUsername(this.basicProperties.determineUsername());}if(super.getPassword() == null) {//从对象basicProperties中拿设置的用户名super.setPassword(this.basicProperties.determinePassword());}if(super.getUrl() == null) {super.setUrl(this.basicProperties.determineUrl());}if(super.getDriverClassName() == null) {super.setDriverClassName(this.basicProperties.getDriverClassName());}}
}
//查看basicProperties
@ConfigurationProperties(prefix = "spring.datasource")
public class DataSourceProperties implements BeanClassLoaderAware, InitializingBean {private ClassLoader classLoader;private String name;private boolean generateUniqueName;private Class<? extends DataSource> type;private String driverClassName;....
}

由此看出,在yml文件数据源的配置:spring.datasource.url等等
我们在回头看上面的截图中:DruidDataSourceAutoConfigure类上@Import注解中引入DruidStatViewServletConfiguration.class,我们可以点开看看:

@ConditionalOnWebApplication
@ConditionalOnProperty(name = {"spring.datasource.druid.stat-view-servlet.enabled"},havingValue = "true"
)
public class DruidStatViewServletConfiguration {private static final String DEFAULT_ALLOW_IP = "127.0.0.1";public DruidStatViewServletConfiguration() {}@Beanpublic ServletRegistrationBean statViewServletRegistrationBean(DruidStatProperties properties) {//获取Druid监控台配置信息StatViewServlet config = properties.getStatViewServlet();ServletRegistrationBean registrationBean = new ServletRegistrationBean();registrationBean.setServlet(new com.alibaba.druid.support.http.StatViewServlet());registrationBean.addUrlMappings(new String[]{config.getUrlPattern() != null?config.getUrlPattern():"/druid/*"});if(config.getAllow() != null) {registrationBean.addInitParameter("allow", config.getAllow());} else {registrationBean.addInitParameter("allow", "127.0.0.1");}if(config.getDeny() != null) {registrationBean.addInitParameter("deny", config.getDeny());}if(config.getLoginUsername() != null) {registrationBean.addInitParameter("loginUsername", config.getLoginUsername());}if(config.getLoginPassword() != null) {registrationBean.addInitParameter("loginPassword", config.getLoginPassword());}if(config.getResetEnable() != null) {registrationBean.addInitParameter("resetEnable", config.getResetEnable());}return registrationBean;}
}

ConditionalOnProperty注解做了限制,由此可看出yml需要配置spring.datasource.druid.stat-view-servlet.enabled属性,且为true。其他的用户名、密码如何配置呢
配置信息都是从StatViewServlet类中获取,查看一下代码

@ConfigurationProperties("spring.datasource.druid")
public class DruidStatProperties {private String[] aopPatterns;private DruidStatProperties.StatViewServlet statViewServlet = new DruidStatProperties.StatViewServlet();public static class StatViewServlet {private boolean enabled;private String urlPattern;private String allow;private String deny;private String loginUsername;private String loginPassword;private String resetEnable;}}

由此看出:设置账号的spring.datasource.druid.StatViewServlet.loginUsername
yml的格式spring.datasource.druid.stat-view-servlet.login-username
其他配置同理

druid以及监控台使用及配置相关推荐

  1. Spring Boot下Druid连接池的使用配置分析

    引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1.  ...

  2. Druid连接池简介和配置

    Druid是什么?有什么作用? Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. Druid的 ...

  3. Druid连接池的实用配置详解

    DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...

  4. 阿里巴巴 Druid 数据库连接池监控界面配置的参数解读

    阿里巴巴 Druid 数据库连接池监控界面配置的参数解读 1.可选的配置项 Property Name Default Value Remarks name 存在多个数据源的时候用于识别数据源 jdb ...

  5. Druid 连接池的实用 配置详解

    Druid连接池参数配置详解 druid为阿里巴巴的数据源,(数据库连接池),集合了c3p0.dbcp.proxool等连接池的优点,还加入了日志监控,有效的监控DB池连接和SQL的执行情况. DRU ...

  6. Druid 在spring中的配置

    Spring配置中dataSource配置 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDat ...

  7. 使用springboot + druid + mybatisplus完成多数据源配置

    一. 简介 1. 版本 springboot版本为2.0.3.RELEASE,mybatisplus版本为2.1.9, druid版本为1.1.9,swagger版本为2.7.0 2. 项目地址   ...

  8. DBCP,C3P0,druid,HiKariCP连接池配置使用

    Apache DBCP连接池配置 Apache commons-dbcp 需要导入dbcp包和 pool包 ,可以 从spring-framework-3.0.2.RELEASE-dependenci ...

  9. Druid连接池的基本配置与使用

    Druid简介 Druid是阿里巴巴的开源连接池组件,是世界上最好的连接池之一.Druid能对数据库连接进行有效管理和重用,最大化程序执行的效率.连接池负责创建和管理连接,程序只负责取用与归还. 以下 ...

最新文章

  1. JavaScript中,this的绑定规则
  2. SQL 的执行顺序,记录一下。
  3. 【Socket网络编程】17. recv() 函数详解
  4. The import java.util cannot be resolved
  5. web页面版权部分的显示问题
  6. python挖长尾词 源码,如何用代码挖局长尾关键词
  7. mysql 查看导出数据字典
  8. Redis 常用监控信息命令总结
  9. 从 301 跳转,聊聊边缘规则的那些小妙用
  10. [导入]ASP.NET MVC的WebSite模式(with mvc membership)
  11. ECCV2018——点云处理相关文章
  12. c++中wstring 和 string的转换
  13. tracepro杂散光分析例子_AES分析中的干扰效应及校正,你知道吗?
  14. Linux内核分析 - 网络[十五]:陆由表[再议]
  15. 深度剖析WinPcap之(四)——WinPcap的体系架构(2)
  16. WPF高性能绘图之DrawingCanvas、DrawingVisual、Button的同时使用
  17. 电脑主板各部件详细图解
  18. TQ2440使用DNW烧录配置流程详解
  19. ROS AUV 启动
  20. 2018滴水LUA手游脚本制作实战视频教程

热门文章

  1. 【LaTex】第二行作者居中(IEEEtran模板)
  2. Python 《Python 实现 2048 游戏》实验报告
  3. 服务器端身份证识别技术
  4. S3C2440 SDRAM驱动配置编程
  5. 基于asp.net721运动体育商城
  6. Ubuntu16.04LTS上安装QQ,QQ音乐
  7. Grafana修改主题背景升级版
  8. 读书笔记:《探索大脑的内部世界》
  9. 【EmailCamel 国外邮件营销、美国邮件群发】邮件到达收件箱系列文章05:免费公共邮箱作为发件人的限制
  10. GIt上传到远程库Gitee出现的问题,需要身份表明和私人邮箱的问题