Druid数据源在springboot中的配置及启用查看druid监控页
步骤1:在maven中配置依赖
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.2.4</version>
</dependency>
步骤2:在容器中注册DruidDataSource(交由容器进行管理)
1.创建一个配置类(@Configuration)
2.创建一个返回类型为DataSource的方法(@Bean)
public class DataResourceConfiguration {
/**
* 为什么是返回DataSource而不是具体数据源呢?
* 答:因为这样可以体现多态性,更加的灵活,不局限于具体的用哪一个数据源(你用哪个他就实例化哪个)
* 关联数据库的方法(具体操作可看我的另外的文章 #springboot数据访问基本操作步骤#)
* @return DataSource
*/
@Bean
//关联配置文件(application.yaml/properties)
@ConfigurationProperties("spring.datasource")
public DataSource getDataResource(){
DruidDataSource druidDataSource = new DruidDataSource();
//(1)可以以此方式来配置与数据库的连接信息
//druidDataSource.setUsername("root");
//druidDataSource.setPassword("root");
//druidDataSource.setDriverClassName("com.mysql.jdbc.Driver");
//druidDataSource.setUrl("jdbc:mysql://localhost:3306/myemployees");
return druidDataSource;
}
/**
* 1、问题:如何启用druid监控页面
① 应用StatViewServlet (url-pattern: /druid/*) /druid/index.html
② StatViewServlet bean不能直接返回使用,它需要注册至servlet管理的bean中
* 2为什么 ServletRegistrationBean<StatViewServlet>会报错?
① 清楚:StatViewServlet是一个servlet --> HttpServlet --> GenricServlet
② 是否存在引入servlet场景
. pom.xml:配置servlet-api
. 配置sprint boot web场景启动器
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
http://localhost:8080/druid/index.html
* @return ServletRegistrationBean
*/
@Bean
public ServletRegistrationBean getStatViewServlet(){
//实例化StatViewServlet
StatViewServlet statViewServlet = new StatViewServlet();
//② 实例化一个:ServletRegistrationBean 并将StatViewServlet添加进来
ServletRegistrationBean<StatViewServlet> statViewServletServletRegistrationBean = new ServletRegistrationBean<StatViewServlet>(statViewServlet,"/druid/*");
ServletRegistrationBean<StatViewServlet> registrationBean = new ServletRegistrationBean<StatViewServlet>(statViewServlet,"/druid/*");
registrationBean.addInitParameter("allow", "127.0.0.1");// IP白名单 (没有配置或者为空,则允许所有访问)
registrationBean.addInitParameter("deny", "");// IP黑名单 (存在共同时,deny优先于allow)
registrationBean.addInitParameter("loginUsername", "root");
registrationBean.addInitParameter("loginPassword", "root");
registrationBean.addInitParameter("resetEnable", "false");
//③ 返回:ServletRegistrationBean
return statViewServletServletRegistrationBean;
}
通过以上最后一个方法,在启动springboot启动类后在地址栏输入http://localhost:8080/druid/index.html即可访问监控页