麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 開發 > Java > 正文

Servlet+MyBatis項目轉Spring Cloud微服務,多數據源配置修改建議

2024-07-14 08:43:27
字體:
來源:轉載
供稿:網友

一、項目需求

在開發過程中,由于技術的不斷迭代,為了提高開發效率,需要對原有項目的架構做出相應的調整。

二、存在的問題

為了不影響項目進度,架構調整初期只是把項目做了簡單的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的應用等等。

最后需要說明的一點是不要拘泥于具體的實現,而是要體會其中的邏輯,理解技術應用的方式。具體實現并不重要,重要的是解決問題的過程以及其中的思想,為什么要這樣做,為什么可以這樣做,這樣做的好處在哪里?真正理解技術,這些問題便不難回答。

小結難免有不當之處,歡迎諸位指正!希望可以通過不斷的討論小結精進技術。讓我們同技術死磕到底!

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到JAVA教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 久草在线新时代视觉 | 色播久久 | 1区2区3区在线观看 欧美特黄a | 久久精品亚洲一区二区三区观看模式 | 青青草成人免费视频在线 | 国产成人精品视频在线 | 国产免费一区二区三区 | 视频毛片| 欧美韩国一区 | hdhdhd79xxxxх| 在线播放免费视频 | 一级免费大片 | 成人18在线| 一级在线视频 | 中文字幕免费在线观看视频 | 久久91久久久久麻豆精品 | 香蕉视频99 | 国产午夜精品久久久久久免费视 | 大学生一级毛片在线视频 | 男人天堂新地址 | 成人在线视频精品 | 天使萌一区二区三区免费观看 | av在线收看 | 国产视频在线播放 | 亚欧在线免费观看 | 国产亚洲精品综合一区91555 | 亚洲网站一区 | 亚洲av一级毛片特黄大片 | 久久99精品久久久久久青青日本 | 日韩欧美电影一区二区三区 | 一日本道久久久精品国产 | 久国产| 色综合久久久久久 | 国产精品久久久久久久久久 | 国产精品成人av片免费看最爱 | 欧美a黄 | 欧美高清在线精品一区二区不卡 | 天堂成人国产精品一区 | 中文字幕一区二区三区久久 | 国产小视频在线 | 在线a毛片免费视频观看 |