同一账户多schema切换(基于springboot)

1、产生的背景因素

刚来新公司梳理项目的时候,发现架构里面有多数据源的配置,虽然是多个库,但是在同一个账号里面管理,那么就完全没必要去做多数据源,去占用资源,用单个数据源多个shema切换完全解决问题,并且还能节省资源的开销。

2、schema-starter组件的使用(组件代码

该组件是基于springboot和mybatis开发的,那么适用范围是(mybatis、ibatis、mybatis-plus)

<dependency>
    <groupId>org.volicy.mysql.schema</groupId>
    <artifactId>mysql-schema-spring-boot-starter</artifactId>
    <version>1.1</version>
</dependency>

将上面的源码地址克隆到自己本地电脑,maven install 安装到本地仓库,将上述maven配置内容贴到你的pom文件里

接着在你的springboot项目application.properties文件里配置如下:

mysql.schema.mapping.(mybatis中mapper.xml的namespace中标识)= 库名

比如:我有两个xml文件,

dockerMapper.xml (namespace = ‘xx.xx.xx.doctor.xx’)  - doctor数据在 doctor库里

hospitalMapper.xml(namespace = ‘xx.xx.xx.hospital.xx’) - hospital数据在hospital库里,那么在配置文件里正确配置如下:

mysql.schema.mapping.doctor=DOCTOR

mysql.schema.mapping.hospital=HOSPITAL

访问之后,会在原有的sql上自动加上shema,比如原有sql如下

select *  from t_doctor

select *  from d_hospital

 组件会自动加上

select *  from doctor.t_doctor

select *  from hospital.d_hospital

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Spring Boot项目中使用Activiti 7,你需要进行以下步骤: 1. 添加Activiti 7的依赖。你可以在Maven或者Gradle中添加Activiti 7的依赖,例如: ``` <dependency> <groupId>org.activiti.cloud</groupId> <artifactId>activiti-cloud-starter-runtime-bundle-dependencies</artifactId> <version>7.1.0</version> <type>pom</type> <scope>import</scope> </dependency> ``` 2. 配置Activiti 7的运行环境。你需要在Spring Boot项目中添加一个Activiti 7配置类,例如: ``` @Configuration public class ActivitiConfig { @Bean public ProcessEngine processEngine() { // 创建一个ProcessEngine对象 ProcessEngineConfiguration config = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration() .setJdbcUrl("jdbc:h2:mem:activiti;DB_CLOSE_DELAY=-1") .setJdbcUsername("sa") .setJdbcPassword("") .setJdbcDriver("org.h2.Driver") .setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE); return config.buildProcessEngine(); } } ``` 在这个配置类中,我们创建了一个ProcessEngine对象,并且配置了它的数据库连接信息。 3. 创建流程定义。你可以使用Activiti Cloud Designer或者Activiti Modeler来创建流程定义。在创建流程定义时,你需要指定流程的各个步骤以及它们之间的转换。 4. 部署流程定义。你可以使用ProcessEngine对象来部署流程定义,例如: ``` @Autowired private ProcessEngine processEngine; public void deployProcessDefinition() { Deployment deployment = processEngine.getRepositoryService() .createDeployment() .addClasspathResource("processes/leave.bpmn20.xml") .deploy(); System.out.println("Deployment ID: " + deployment.getId()); } ``` 在这个例子中,我们使用ProcessEngine对象来获取一个RepositoryService对象,并且使用这个对象来创建一个部署对象。然后,我们使用addClasspathResource方法来指定流程定义的文件路径,并且调用deploy方法来部署流程定义。 5. 启动流程实例。你也可以使用ProcessEngine对象来启动流程实例,例如: ``` @Autowired private ProcessEngine processEngine; public void startProcessInstance() { ProcessInstance processInstance = processEngine.getRuntimeService() .startProcessInstanceByKey("leave"); System.out.println("Process instance ID: " + processInstance.getId()); } ``` 在这个例子中,我们使用ProcessEngine对象来获取一个RuntimeService对象,并且使用这个对象来启动流程实例。在启动流程实例时,我们需要指定流程定义的ID或者key。 以上是基于Spring Boot如何定义Activiti 7流程的基本步骤,具体实现还需要根据你的具体业务需求进行调整和扩展。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值