若依框架(前后端分离)——多数据源配置详细教程

此篇写的是对若依框架中的多数据源的配置教程,看了很多教程,很多都是写的较为模糊,以下是自己配置时的详细的步骤,大家可以根据这个例子去实现连接:

1. 在ruoyi-admin文件中的xml文件内配置数据库的信息。

文件路径
将账号和密码等服务器信息配置进去,1443是SQL server默认的服务器端口:
在这里插入图片描述

2.在DataSourceType枚举文件内增加自己配置的数据源。

在这里插入图片描述

3.在DruidConfig中增加数据源加载

@Configuration
public class DruidConfig
{
    @Bean
    @ConfigurationProperties("spring.datasource.druid.master")
    public DataSource masterDataSource(DruidProperties druidProperties)
    {
        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
        return druidProperties.dataSource(dataSource);
    }

    @Bean
    @ConfigurationProperties("spring.datasource.druid.slave")
    @ConditionalOnProperty(prefix = "spring.datasource.druid.slave", name = "enabled", havingValue = "true")
    public DataSource slaveDataSource(DruidProperties druidProperties)
    {
        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
        return druidProperties.dataSource(dataSource);
    }

    // 新增加新配置的数据源
    @Bean
    @ConfigurationProperties("spring.datasource.druid.selectmo")
    @ConditionalOnProperty(prefix = "spring.datasource.druid.selectmo", name = "enabled", havingValue = "true")
    public DataSource selectmoDataSource(DruidProperties druidProperties)
    {
        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
        return druidProperties.dataSource(dataSource);
    }

    @Bean(name = "dynamicDataSource")
    @Primary
    public DynamicDataSource dataSource(DataSource masterDataSource)
    {
        Map<Object, Object> targetDataSources = new HashMap<>();
        targetDataSources.put(DataSourceType.MASTER.name(), masterDataSource);
        setDataSource(targetDataSources, DataSourceType.SLAVE.name(), "slaveDataSource");
        //将新的数据源对象加载到DataSource去
        setDataSource(targetDataSources, DataSourceType.SELECTMO.name(), "selectmoDataSource");
        return new DynamicDataSource(masterDataSource, targetDataSources);
    }

文件路径图片:配置处1——注意:框住了的即为需要注意并修改的地方
在这里插入图片描述
文件路径图片:配置处2
在这里插入图片描述

4.添加操作数据源的方法

在这里插入图片描述

5.在Controller中进行配置

 @GetMapping("/getmo")		// 调用的是get请求,/getmo是路由地址
    public String getMoInfo() {
        String[] moInfoArr = planScheduleService.selectMoInfo();
        System.out.println(moInfoArr.length);
		// 对数据进行操作
        return "hello";   // 将需要的数据进行返回
    }

在这里插入图片描述
planScheduleService是类名,selectMoInfo()则是在后面定义的

6. 在mapper中配置

@Select("SELECT * FROM XXX")		// 需要执行的SQL语句
public String[] selectMoInfo();		// 返回值的类型需要与control中的保持一致

SQL语句一方面是写在mapper内,一方面是写在对应的xml文件内:
在这里插入图片描述

7. service文件配置

接口文件配置:

public String[] selectMoInfo();

在这里插入图片描述
impl文件内的类配置,注意在此处使用需要调用的数据源

@Override
@DataSource(value = DataSourceType.SELECTMO)
public String[] selectMoInfo() {
    return planScheduleMapper.selectMoInfo();
}

在这里插入图片描述
这样在前端发送请求,便可以获取成功了,以上便是配置数据源的具体流程例子。

若依框架支持前后端分离配置。根据引用所提到的,你可以在若依框架上进行二次开发,保持若依源码不变。你可以新建一个模块来处理你自己系统的业务,将controller层放在wms-admin模块进行管理,而domain、mapper、service和xml文件则可以放在新建的模块中进行管理。 对于前后端分离配置,你可以参考引用中提到的微服务版本的参考网站。该文章介绍了如何从配置到运行RuoYi-Cloud微服务版本。这里可以给你一些启示和参考。 另外,根据引用所示,若依框架支持配置mybatis-plus,你可以在application.yml配置文件中进行相关设置。比如,你可以使用mapper-locations来指定XML文件的位置,使用typeAliasesPackage来指定实体类的扫描的包路径。 总的来说,若依框架提供了灵活的配置选项来支持前后端分离的开发方式。你可以根据你的具体需求和项目结构进行相应的配置。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [若依框架前后端分离使用2](https://blog.csdn.net/Hello_World_Me/article/details/125198350)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [若依框架前后端分离使用1](https://blog.csdn.net/Hello_World_Me/article/details/125142393)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值