springboot2.0整合druid,怎么检测是否整合成功了???
#spring配置
spring:
application:
name: gxc-webapp #应用名
datasource: #【配置数据源】
type: com.alibaba.druid.pool.DruidDataSource
driver-class-name: com.mysql.cj.jdbc.Driver
druid:
db1: # 数据源1
jdbc-url: jdbc:mysql://localhost:3306/user-info?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root
initialization-mode: always
# 初始连接数
initial-size: 5
# 最大连接池数量
max-active: 10
# 最小连接池数量
min-idle: 5
# 配置获取连接等待超时的时间
max-wait: 60000
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
#是否在连接空闲一段时间后检测其可用性
test-while-idle: true
#是否在获得连接后检测其可用性
test-on-borrow: false
#是否在连接放回连接池后检测其可用性
test-on-return: false
db2: # 数据源2
jdbc-url: jdbc:mysql://localhost:3306/colleges?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
username: root
password: root
initialization-mode: always
# 初始连接数
initial-size: 5
# 最大连接池数量
max-active: 10
# 最小连接池数量
min-idle: 5
# 配置获取连接等待超时的时间
max-wait: 60000
# 打开PSCache,并且指定每个连接上PSCache的大小
pool-prepared-statements: true
max-pool-prepared-statement-per-connection-size: 20
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
min-evictable-idle-time-millis: 300000
validation-query: SELECT 1 FROM DUAL
#是否在连接空闲一段时间后检测其可用性
test-while-idle: true
#是否在获得连接后检测其可用性
test-on-borrow: false
#是否在连接放回连接池后检测其可用性
test-on-return: false
配置了一个多数据源,切换数据源是正常的,我现在想知道使用druid初始化的连接池是否成功了,是不是上面配置的初始化大小怎么检测???
网上查了一下,应用启动时,日志并没有出现
com.alibaba.druid.pool.DruidDataSource - {dataSource-1} inited
所以我怀疑druid根本没有初始化连接池
druid配置
@Configuration
public class DruidConfig {
/**
* 配置 Druid 监控界面
*/
@Bean
public ServletRegistrationBean statViewServlet(){
ServletRegistrationBean srb =
new ServletRegistrationBean(new StatViewServlet(),"/druid/*");
//设置控制台管理用户
srb.addInitParameter("loginUsername","root");
srb.addInitParameter("loginPassword","root");
//是否可以重置数据
srb.addInitParameter("resetEnable","false");
return srb;
}
/**
* 配置web监控的filter
* @return
*/
@Bean
public FilterRegistrationBean webStatFilter(){
FilterRegistrationBean bean = new FilterRegistrationBean();
bean.setFilter(new WebStatFilter());
Map<String,String> initParams = new HashMap<>();
initParams.put("exclusions","/static/*,*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*");//过滤掉需要监控的文件
bean.setInitParameters(initParams);
bean.setUrlPatterns(Arrays.asList("/*"));
return bean;
}
@Bean
public DataSource druidDataSource(){
return new DruidDataSource();
}
}
打开druid监控页面也看不到数据源信息
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
你的数据源没有配置成功。
第一点,durid单数据源默认扫描的配置是spring.datasource.druid.,你配置多数据源之后的配置是spring.datasource.druid.db1.,所以无法自动注入配置。
第二点,你的DruidConfig 类也没有实例化两个数据源,正确的代码如下
其中@Primary是必须的,是程序在启动时默认装配的bean。
此外,你还要配置这两个数据源扫描的mapper路径。
如果有疑问,请继续留言。
你启动后查询数据库 就知道成没成
这里会显示你的数据库连接信息