当前位置:主页 > java教程 > Servlet+MyBatis项目转Spring Cloud微服务,多数据源配置修改建议

Servlet+MyBatis项目转Spring Cloud微服务,多数据源配置实例详解

发布:2020-01-15 13:12:06 110


本站收集了一篇Spring多数据源配置相关的编程文章,网友廖伟志根据主题投稿了本篇教程内容,涉及到servlet、mybatis、Spring、springcloud、多数据源配置、Servlet+MyBatis项目转Spring Cloud微服务,多数据源配置修改建议相关内容,已被160网友关注,如果对知识点想更进一步了解可以在下方电子资料中获取。

Servlet+MyBatis项目转Spring Cloud微服务,多数据源配置修改建议

一、项目需求

在开发过程中,由于技术的不断迭代,为了提高开发效率,需要对原有项目的架构做出相应的调整。

二、存在的问题

为了不影响项目进度,架构调整初期只是把项目做了简单的maven管理,引入springboot并未做spring cloud微服务处理。但随着项目的进一步开发,急需拆分现有业务,做微服务处理。因此架构上的短板日益突出。spring cloud config 无法完全应用,每次项目部署需要修改大量配置文件。严重影响开发效率,因此便萌生了对项目架构再次调整的决心。

三、调整建议

为了兼容以前的代码版本,尽量不修改现有的代码结构,以免增加额外的工作量并且为了更好的应用cloud config。

首先,创建JdbcConfigBean类,用以读取配置文件,实例代码入如下(仅供参考):

import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.context.config.annotation.RefreshScope;
import org.springframework.stereotype.Component;
@RefreshScope
@Component("jdbcConfigBean")
public class JdbcConfigBean {
  @Value("${jdbc.driver}")
  private String driver;
  @Value("${db1.jdbc.url}")
  private String url;
  @Value("${db1.jdbc.username}")
  private String username;
  @Value("${db1.jdbc.password}")
  private String password;
  @Value("${db2.jdbc.url}")
  private String db2_url;
  @Value("${db2.jdbc.username}")
  private String db2_username;
  @Value("${db2.jdbc.password}")
  private String db2_password;
  // 其他数据源
  // 其他配置
  // 相应的getter setter 方法
}

其次,创建数据源,代码示例如下(仅供参考):

/**
 * xml Mabatis XML配置文件
 * @param xml
 * @return
 **/
 public static SqlSessionFactory create(String xml){
 JdbcConfigBean jdbcConfigBean = (JdbcConfigBean) SpringContextUtil.getBean("jdbcConfigBean");
 Properties properties = new Properties();
 properties.setProperty("jdbc.driver", jdbcConfigBean.getDriver());
 properties.setProperty("db1.jdbc.url", jdbcConfigBean.getUrl());
 properties.setProperty("db1.jdbc.username", jdbcConfigBean.getUsername());
 properties.setProperty("db1.jdbc.password", jdbcConfigBean.getPassword());
 properties.setProperty("db2.virtual.jdbc.url", jdbcConfigBean.getDb2_url());
 properties.setProperty("db2.virtual.jdbc.username", jdbcConfigBean.getDb2_username());
 properties.setProperty("db2.virtual.jdbc.password", jdbcConfigBean.getDb2_password());
 // 其他属性
 try {
  Reader reader = Resources.getResourceAsReader(xml);
  SqlSessionFactoryBuilder sqlSessionFactoryBuilder = new SqlSessionFactoryBuilder();
  return sqlSessionFactoryBuilder.build(reader, properties);
 } catch (IOException e) {
  log.error("创建数据源失败:" + e.getMessage());
 }
 return null;
 }

以上,便可以做多数据元的配置,并且在不改动现有代码结构的条件下很好的集成spring cloud config和Mybatis。

四、小结

写作目的不是为了解决具体的问题,因为每个人遇到的项目都不相同,问题也不会一样,应用场景也不尽相同。对于具体问题可能有失参考意义。但是我们也应该看到通用的部分,比如多数据源的配置,cloud config的应用等等。

最后需要说明的一点是不要拘泥于具体的实现,而是要体会其中的逻辑,理解技术应用的方式。具体实现并不重要,重要的是解决问题的过程以及其中的思想,为什么要这样做,为什么可以这样做,这样做的好处在哪里?真正理解技术,这些问题便不难回答。

小结难免有不当之处,欢迎诸位指正!希望可以通过不断的讨论小结精进技术。让我们同技术死磕到底!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对码农之家的支持。如果你想了解更多相关内容请查看下面相关链接


参考资料

相关文章

  • Spring @ComponentScan注解扫描组件原理

    发布:2023-03-04

    这篇文章主要介绍了Spring @ComponentScan自动扫描组件使用,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


  • maven如何利用springboot的配置文件进行多个环境的打包

    发布:2023-04-09

    这篇文章主要介绍了maven如何利用springboot的配置文件进行多个环境的打包,在Spring Boot中多环境配置文件名需要满足application-{profiles.active}.properties的格式,其中{profiles.active}对应你的环境标识,本文给大家详细讲解,需要的朋友可以参考下


  • 快速创建spring boot项目的完整步骤

    发布:2019-07-03

    这篇文章主要给大家介绍了关于通过5分钟快速创建spring boot项目的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面来一


  • Spring BeanFactory工厂使用教程

    发布:2023-04-11

    Spring的本质是一个bean工厂(beanFactory)或者说bean容器,它按照我们的要求,生产我们需要的各种各样的bean,提供给我们使用。只是在生产bean的过程中,需要解决bean之间的依赖问题,才引入了依赖注入(DI)这种技术


  • Spring的RequestBodyAdvice拦截浅析

    发布:2023-04-15

    本文主要介绍了Spring的RequestBodyAdvice拦截浅析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧


  • spring profile的误解及易错点整理

    发布:2019-06-07

    这篇文章主要介绍了浅谈关于spring profile的误解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧


  • Windows下使用Graalvm将Springboot应用编译成exe大大提高启动和运行效率(推荐)

    发布:2023-04-17

    这篇文章主要介绍了Windows下使用Graalvm将Springboot应用编译成exe大大提高启动和运行效率,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下


  • SpringBoot启动并初始化执行sql脚本问题

    发布:2023-03-08

    这篇文章主要介绍了SpringBoot启动并初始化执行sql脚本问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教


网友讨论