网上找了好多文章,springboot(我使用1.4.1版本)的application.properties都是一样的类似spring.datasource.xxxx的配置。
顺手复制了一行,spring.datasource.filters=stat,wall,slf4j
然后启动项目,查看数据源,filters一项显示为空,sql监控为空。
不甘心,采用javaconfig方式手动new DruidDataSource然后调用setFilters("stat, wall, slf4j") ,重新启动项目,filters显示正常,sql监控也有了数据。
去查看springboot的autoconfigure的源码,压根就没有看到使用spring.datasource.filters的配置,同时druid也没有支持实现springboot的configurate配置。
我就纳闷了,是我哪里遗漏了,还是网上的这些人纯粹复制粘贴没有验证过code是否生效。
最后又在application.properties配置了initialSize、minIdle....查看数据源,还是使用druid的默认配置。
难道他们使用的都是druid.spring.boot.start版本?
3条答案
按热度按时间iq0todco1#
这个好像你要自己用java代码设置属性。
package com.pt.config.bean;
import com.alibaba.druid.pool.DruidDataSource;
import com.alibaba.druid.support.http.StatViewServlet;
import com.alibaba.druid.support.http.WebStatFilter;
import com.pt.config.ConnectionProperties;
import com.pt.config.DBPoolConfiguration;
import lombok.Getter;
import lombok.Setter;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.web.servlet.FilterRegistrationBean;
import org.springframework.boot.web.servlet.ServletRegistrationBean;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import javax.sql.DataSource;
import java.sql.SQLException;
import java.util.Properties;
/**
*/
@configuration
public class DruidDataSourceConfiguration {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
@getter
@Setter
private DBPoolConfiguration config;
@Autowired
@getter
@Setter
private ConnectionProperties conProp;
@bean
public ServletRegistrationBean druidServlet() {
return new ServletRegistrationBean(new StatViewServlet(), "/druid/*");
}
@bean
public DataSource druidDataSource() {
}
@bean
public FilterRegistrationBean filterRegistrationBean() {
FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean();
filterRegistrationBean.setFilter(new WebStatFilter());
filterRegistrationBean.addUrlPatterns("/");
filterRegistrationBean.addInitParameter("exclusions", ".js,.gif,.jpg,.png,.css,.ico,/druid/");
return filterRegistrationBean;
}
}
7rtdyuoh2#
@missvivia,网上只给了application.properties配置,压根就没提@configuration,算了让我静静。
zbdgwd5y3#
@galikaixin 你用SpringBoot你不知道Bean的声明要写在Configuration类里??
@missvivia 可以使用prefix的方式完成配置,就不用那么多的set了