如果需要druid增加的属性生效,需要配置一个配置类将druid注册到容器中:
@Configuration public class DruidConfig { @ConfigurationProperties(prefix = "spring.datasource") @Bean public DataSource druid(){ return new DruidDataSource(); } }期间遇到的问题: 1、SpringBoot高版本引入mysql依赖,在application.yml配置文件中连接数据库,url需要指定时区参数=> url: jdbc:mysql://127.0.0.1:3306/test?serverTimezone=GMT%2B8 2、用spring.datasource.type属性指定Druid数据源时可能无法找到com.alibaba.druid.pool.DruidDataSource 可以将SpringBoot的Maven在默认和本机安装之间切换刷新一下,这样就可以正确引入Druid依赖了 3、引入druid配置类运行报错: Failed to bind properties under ‘spring.datasource’ to javax.sql.DataSource: Property: spring.datasource.filters Value: stat,wall,log4j Origin: class path resource [application.yml]:24:14 Reason: org.apache.log4j.Logger 原因是pom.xml为引入log4j依赖。。。。
<dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>配置Druid的监控 //1、配置一个管理后台的Servlet
@Bean public ServletRegistrationBean statViewServlet(){ ServletRegistrationBean bean = new ServletRegistrationBean(new StatViewServlet(),"/druid/*"); Map<String,String> initParams = new HashMap<String,String>(); initParams.put("loginUsername","admin"); initParams.put("loginPassword","admin"); initParams.put("allow","");//默认就是允许所有访问 bean.setInitParameters(initParams); return bean; }访问路径:localhost:8080/druid,便可以进入Druid管理后台控制的登录界面 输入用户名密码登入 //2、配置一个Web监控的filter
@Bean public FilterRegistrationBean webStatFilter(){ FilterRegistrationBean bean = new FilterRegistrationBean(); bean.setFilter(new WebStatFilter()); Map<String,String> initParams = new HashMap<String,String>(); initParams.put("exclusions","*.js,*.css,/druid/*"); bean.setInitParameters(initParams); bean.setUrlPatterns(Arrays.asList("/*")); return bean; }配置这个即为下图的Web应用监听器,可以监听Web应用的变化情况
