Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

4.1.3版本报com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty不存在 #648

Closed
lijl-vb opened this issue Jun 23, 2024 · 4 comments

Comments

@lijl-vb
Copy link

lijl-vb commented Jun 23, 2024

从3.2.0升级到4.1.3版本后,报com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty不存在。

然后替换为com.baomidou.dynamic.datasource.creator.DataSourceProperty,又报“com.baomidou.dynamic.datasource.creator.DataSourceProperty无法转换为com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty”

以上错误在下面这段代码抛出:
DataSourceProperty newDataSource = new DataSourceProperty();
newDataSource.setDriverClassName(“com.mysql.cj.jdbc.Driver”);
newDataSource.setUrl(“###”);
newDataSource.setUsername(“###”);
newDataSource.setPassword(“###”);
dynamicDataSourceProperties.getDatasource().put("pool",newDataSource);

麻烦帮看一下是什么原因?应该怎么修改,我想实现的功能是从数据库读取数据源配置信息,然后添加到数据源池中。

@huayanYu
Copy link
Member

不知道,建议用最新版,不行就提供最简化没有多余依赖的demo项目

@lijl-vb
Copy link
Author

lijl-vb commented Jun 24, 2024

不知道,建议用最新版,不行就提供最简化没有多余依赖的demo项目

我使用最新版的4.3.1也是一样。替换为com.baomidou.dynamic.datasource.creator.DataSourceProperty后,编译的时候是不报错的,是在运行的时候才报“com.baomidou.dynamic.datasource.creator.DataSourceProperty无法转换为com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty”。

demo代码如下,麻烦再帮看一下?

package org.jeecg.modules.data.service.impl;

import com.baomidou.dynamic.datasource.DynamicRoutingDataSource;
//import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DataSourceProperty;
import com.baomidou.dynamic.datasource.creator.DataSourceProperty;
import com.baomidou.dynamic.datasource.spring.boot.autoconfigure.DynamicDataSourceProperties;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.modules.data.entity.DataPoolSource;
import org.jeecg.modules.data.entity.DataPoolSql;
import org.jeecg.modules.data.service.DataPoolSourceService;
import org.jeecg.modules.data.mapper.DataPoolSourceMapper;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
@Slf4j
public class DataPoolSourceServiceImpl extends ServiceImpl<DataPoolSourceMapper, DataPoolSource>
    implements DataPoolSourceService{

    @Autowired
    private DataPoolSourceMapper dataPoolSourceMapper;

    @Autowired
    private DynamicDataSourceProperties dynamicDataSourceProperties;

    @Autowired
    private DynamicRoutingDataSource dynamicRoutingDataSource;

    @Override
    public void initDataSource(DataPoolSql dataPoolSql) {

        DataPoolSource datasourceEntity = dataPoolSourceMapper.selectById(dataPoolSql.getDataSourceId());

        addDataSource(datasourceEntity);
    }

    @Override
    public void addDataSource(DataPoolSource dataPoolSource) {
        String url = "jdbc:mysql://" + dataPoolSource.getDataBaseIp() + ":" + dataPoolSource.getDataBasePort() + "/" + dataPoolSource.getDataBaseName()+"?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&rewriteBatchedStatements=true";
        String driverClassName = "com.mysql.cj.jdbc.Driver";

        DataSourceProperty newDataSource = new DataSourceProperty();
        newDataSource.setDriverClassName(driverClassName);
        newDataSource.setUrl(url);
        newDataSource.setUsername(dataPoolSource.getUserName());
        newDataSource.setPassword(dataPoolSource.getPassWord());
        dynamicDataSourceProperties.getDatasource().put("pool",newDataSource);

        try {
            dynamicRoutingDataSource.afterPropertiesSet();
        } catch (Exception e) {
            throw new RuntimeException("数据源连接失败,url:" + url);
        }
    }
}

@zjh0517
Copy link

zjh0517 commented Jul 2, 2024

请问问题解决了吗?您知道如何将数据源配置在配置中心读取吗?直接配置启动会报错,找不到数据源

@huayanYu
Copy link
Member

huayanYu commented Jul 4, 2024

版本冲突

@huayanYu huayanYu closed this as completed Jul 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants