Springboot整合druid踩坑记录

问题:springboot整合mybatisplus和druid,yml自定义配置druid,登录druid监控页面发现与自己配置的不一样,即配置不起作用。

代码

jar包

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>druid-spring-boot-starter</artifactId>
    <version>1.2.3</version>
</dependency>

yml配置

yml配置文件,展示关键配置部分

代码

@Configuration
public class DruidConfig {

    /**
     * 指定加载appliction.yml文件里面的spring.datasource开头的
     * DruidDataSource类里面的属性与appliction.yml文件里面的spring.datasource开头的对应映射
     *
     * @return
     */
    @ConfigurationProperties(prefix = "spring.datasource")
    @Bean
    public DataSource druid() {
        return new DruidDataSource();
    }
    //其他监控配置暂不贴出
}

项目启动执行一条查询,查看监控页面
在这里插入图片描述
发现配置未生效。

问题排查

通过idea下druid配置点击查看源码
在这里插入图片描述
默认确实是加载spring.datasource.druid前缀的配置,但是我代码里面是new DruidDataSource()没有用到这个类,故无法加在到idea里面的配置文件。
提示如果未找到spring.datasource.druid配置的jdbc连接属性,也可以使用spring.datasource配置的连接属性
在这里插入图片描述
里面的属性DataSourceProperties 默认加在spirng.datasource前缀的配置,故关于数据库连接的配置可用。

第一种修改方法

@Configuration
public class DruidConfig {

    @Bean
    //这个加载配置不需要了,在DruidDataSourceWrapper早已存在
    //@ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druid() {
        //return new DruidDataSource();
        //使用构造器模式创建数据源,这是druid里面提供给我们的入口
        return DruidDataSourceBuilder.create().build();
    }
}

重新启动查看
在这里插入图片描述
跟yml配置的一样了

第二种配置方法

代码不变

@Bean
	//指定加载spring.datasource前缀的所有配置
    @ConfigurationProperties(prefix = "spring.datasource")
    public DataSource druid() {
        return new DruidDataSource();
    }

配置文件进行修改
在这里插入图片描述
这种配置idea是识别不到的,项目启动查看监控界面
在这里插入图片描述
发现配置生效

推荐使用第一种配置方法

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值