druid以及监控台使用及配置
一、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以及监控台使用及配置相关推荐
- Spring Boot下Druid连接池的使用配置分析
引言: 在Spring Boot下默认提供了若干种可用的连接池,Druid来自于阿里系的一个开源连接池,在连接池之外,还提供了非常优秀的监控功能,这里讲解如何与Spring Boot实现集成. 1. ...
- Druid连接池简介和配置
Druid是什么?有什么作用? Druid首先是一个数据库连接池,但它不仅仅是一个数据库连接池,它还包含一个ProxyDriver,一系列内置的JDBC组件库,一个SQL Parser. Druid的 ...
- Druid连接池的实用配置详解
DRUID介绍 DRUID是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0.DBCP.PROXOOL等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针 ...
- 阿里巴巴 Druid 数据库连接池监控界面配置的参数解读
阿里巴巴 Druid 数据库连接池监控界面配置的参数解读 1.可选的配置项 Property Name Default Value Remarks name 存在多个数据源的时候用于识别数据源 jdb ...
- Druid 连接池的实用 配置详解
Druid连接池参数配置详解 druid为阿里巴巴的数据源,(数据库连接池),集合了c3p0.dbcp.proxool等连接池的优点,还加入了日志监控,有效的监控DB池连接和SQL的执行情况. DRU ...
- Druid 在spring中的配置
Spring配置中dataSource配置 <bean id="dataSource" class="com.alibaba.druid.pool.DruidDat ...
- 使用springboot + druid + mybatisplus完成多数据源配置
一. 简介 1. 版本 springboot版本为2.0.3.RELEASE,mybatisplus版本为2.1.9, druid版本为1.1.9,swagger版本为2.7.0 2. 项目地址 ...
- DBCP,C3P0,druid,HiKariCP连接池配置使用
Apache DBCP连接池配置 Apache commons-dbcp 需要导入dbcp包和 pool包 ,可以 从spring-framework-3.0.2.RELEASE-dependenci ...
- Druid连接池的基本配置与使用
Druid简介 Druid是阿里巴巴的开源连接池组件,是世界上最好的连接池之一.Druid能对数据库连接进行有效管理和重用,最大化程序执行的效率.连接池负责创建和管理连接,程序只负责取用与归还. 以下 ...
最新文章
- JavaScript中,this的绑定规则
- SQL 的执行顺序,记录一下。
- 【Socket网络编程】17. recv() 函数详解
- The import java.util cannot be resolved
- web页面版权部分的显示问题
- python挖长尾词 源码,如何用代码挖局长尾关键词
- mysql 查看导出数据字典
- Redis 常用监控信息命令总结
- 从 301 跳转,聊聊边缘规则的那些小妙用
- [导入]ASP.NET MVC的WebSite模式(with mvc membership)
- ECCV2018——点云处理相关文章
- c++中wstring 和 string的转换
- tracepro杂散光分析例子_AES分析中的干扰效应及校正,你知道吗?
- Linux内核分析 - 网络[十五]:陆由表[再议]
- 深度剖析WinPcap之(四)——WinPcap的体系架构(2)
- WPF高性能绘图之DrawingCanvas、DrawingVisual、Button的同时使用
- 电脑主板各部件详细图解
- TQ2440使用DNW烧录配置流程详解
- ROS AUV 启动
- 2018滴水LUA手游脚本制作实战视频教程