欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2019年01月04日 15:26:42   作者:希爾伯特  
今天小編就為大家分享一篇關于Servlet+MyBatis項目轉Spring Cloud微服務,多數(shù)據(jù)源配置修改建議,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧

一、項目需求

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

二、存在的問題

為了不影響項目進度,架構調整初期只是把項目做了簡單的maven管理,引入springboot并未做spring cloud微服務處理。但隨著項目的進一步開發(fā),急需拆分現(xiàn)有業(yè)務,做微服務處理。因此架構上的短板日益突出。spring cloud config 無法完全應用,每次項目部署需要修改大量配置文件。嚴重影響開發(fā)效率,因此便萌生了對項目架構再次調整的決心。

三、調整建議

為了兼容以前的代碼版本,盡量不修改現(xiàn)有的代碼結構,以免增加額外的工作量并且為了更好的應用cloud config。

首先,創(chuàng)建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;
  // 其他數(shù)據(jù)源
  // 其他配置
  // 相應的getter setter 方法
}

其次,創(chuàng)建數(shù)據(jù)源,代碼示例如下(僅供參考):

/**
 * 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("創(chuàng)建數(shù)據(jù)源失?。? + e.getMessage());
 }
 return null;
 }

以上,便可以做多數(shù)據(jù)元的配置,并且在不改動現(xiàn)有代碼結構的條件下很好的集成spring cloud config和Mybatis。

四、小結

寫作目的不是為了解決具體的問題,因為每個人遇到的項目都不相同,問題也不會一樣,應用場景也不盡相同。對于具體問題可能有失參考意義。但是我們也應該看到通用的部分,比如多數(shù)據(jù)源的配置,cloud config的應用等等。

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

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

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對腳本之家的支持。如果你想了解更多相關內容請查看下面相關鏈接

相關文章

  • 簡要分析Java多進程編程的并發(fā)控制

    簡要分析Java多進程編程的并發(fā)控制

    這篇文章介紹了簡要分析Java多進程編程的并發(fā)控制,主要針對內存獲取方面,需要的朋友可以參考下
    2015-11-11
  • Java實現(xiàn)的動態(tài)數(shù)字時鐘功能示例【顯示世界時間】

    Java實現(xiàn)的動態(tài)數(shù)字時鐘功能示例【顯示世界時間】

    這篇文章主要介紹了Java實現(xiàn)的動態(tài)數(shù)字時鐘功能,結合實例形式分析了java顯示北京、紐約、倫敦等世界時間的相關日期時間運算操作技巧,需要的朋友可以參考下
    2019-03-03
  • java將m3u8格式轉成視頻文件的方法

    java將m3u8格式轉成視頻文件的方法

    這篇文章主要介紹了如何java將m3u8格式轉成視頻文件,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-03-03
  • java實現(xiàn)對對碰小游戲

    java實現(xiàn)對對碰小游戲

    這篇文章主要為大家詳細介紹了java實現(xiàn)對對碰小游戲,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-12-12
  • 詳解基于spring多數(shù)據(jù)源動態(tài)調用及其事務處理

    詳解基于spring多數(shù)據(jù)源動態(tài)調用及其事務處理

    本篇文章主要介紹了基于spring多數(shù)據(jù)源動態(tài)調用及其事務處理 ,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • 詳解Mybatis中的CRUD

    詳解Mybatis中的CRUD

    這篇文章主要介紹了Mybatis中的CRUD的相關知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-03-03
  • Java報錯:ClassCastException問題解決方法

    Java報錯:ClassCastException問題解決方法

    異常是程序中的一些錯誤,但并不是所有的錯誤都是異常,并且錯誤有時候是可以避免的,下面這篇文章主要給大家介紹了關于Java報錯:ClassCastException問題解決方法,需要的朋友可以參考下
    2024-07-07
  • 解決IDEA target文件夾越來越大的問題

    解決IDEA target文件夾越來越大的問題

    這篇文章主要介紹了解決IDEA target文件夾越來越大的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02
  • Java?從json提取數(shù)組并轉換為list的操作方法

    Java?從json提取數(shù)組并轉換為list的操作方法

    這篇文章主要介紹了Java?從json提取出數(shù)組并轉換為list,使用getJSONArray()獲取到jsonarray后,再將jsonArray轉換為字符串,最后將字符串解析為List列表,本文通過實例代碼給大家詳細講解,需要的朋友可以參考下
    2022-10-10
  • java中堆內存與棧內存的知識點總結

    java中堆內存與棧內存的知識點總結

    在本篇文章里小編給大家整理的是關于java中堆內存與棧內存的知識點總結,有需要的朋友們可以跟著學習下。
    2019-12-12

最新評論