直播app原始碼,資料庫多資料來源自動選擇實現
直播app原始碼,資料庫多資料來源自動選擇實現
1、寫對應列舉的資料來源
public enum DataSourceEnum { DB1("空鐵", "datasource1"), DB2("同程", "datasource2"), DB3("賬號", "datasource3"); private String name; private String value; DataSourceEnum(String name, String value) { this.name = name; this.value = value; } public String getName(){ return this.name; } public String getValue() { return this.value; } }
2、實現註解功能
可以使用註解的方式,註解sql使用哪個資料來源,在執行sql的時候,就會自動選擇對應的資料來源
import java.lang.annotation.*; @Target({ElementType.METHOD,ElementType.TYPE}) //固定寫法 @Retention(RetentionPolicy.RUNTIME) //固定寫法 @Documented //固定寫法 public @interface DataSource //可自定義註解名字 { DataSourceEnum value() default DataSourceEnum.DB1; //預設的資料來源,此處的資料來源是自己寫的配置 }
3、切面,實現註解形式自動切換資料來源
import lombok.extern.slf4j.Slf4j; import org.aspectj.lang.annotation.After; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.aspectj.lang.annotation.Pointcut; import org.springframework.core.annotation.Order; import org.springframework.stereotype.Component; @Aspect @Component @Slf4j @Order(-1) public class DataSourceAspect { //↓↓↓此處的DataSource路徑是註解的路徑,透過註解實現切面功能 @Pointcut("@within(com.ccservice.searchordernum.config.DataSource)||@annotation(com.ccservice.searchordernum.config.DataSource)") public void pointCut(){} //↓↓↓annotation中的datasource是下面方法中的引數。引數中的datasource是註解類 @Before("pointCut() && @annotation(dataSource)") public void doBefor(DataSource dataSource){ log.info("選擇資料來源:{}", dataSource.value().getName()); //此處加一個日誌,列印出來切換的資料來源 //此處設定切換資料來源。動態切換。後續我們設定資料來源的時候以列舉的value作為key,所以此處設定value就達到了切換資料來源的效果 DataSourceContextHolder.setDatasource(dataSource.value().getValue()); } @After("pointCut()") public void doAfter() { DataSourceContextHolder.clear(); //之後進行資料來源清空 } }
4、配置druid監控頁面
import com.alibaba.druid.support.http.StatViewServlet; import com.alibaba.druid.support.http.WebStatFilter; import org.springframework.boot.web.servlet.FilterRegistrationBean; import org.springframework.boot.web.servlet.ServletRegistrationBean; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; @Configuration public class DataSourceConfiguration { @Bean public ServletRegistrationBean startViewServlet(){ ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(new StatViewServlet(), "/druid/*"); // IP白名單 此處最好把黑白名單去掉,暫時不清楚怎麼弄的 servletRegistrationBean.addInitParameter("allow","127.0.0.1"); // IP黑名單(共同存在時,deny優先於allow) servletRegistrationBean.addInitParameter("deny","127.0.0.1"); //控制檯管理使用者 配置賬號密碼等 servletRegistrationBean.addInitParameter("loginUsername","admin"); servletRegistrationBean.addInitParameter("loginPassword","123456"); //是否能夠重置資料 servletRegistrationBean.addInitParameter("resetEnable","false"); return servletRegistrationBean; } @Bean public FilterRegistrationBean statFilter(){ FilterRegistrationBean filterRegistrationBean = new FilterRegistrationBean(new WebStatFilter()); //新增過濾規則 filterRegistrationBean.addUrlPatterns("/*"); //忽略過濾的格式 filterRegistrationBean.addInitParameter("exclusions","*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*"); return filterRegistrationBean; } }
以上就是 直播app原始碼,資料庫多資料來源自動選擇實現,更多內容歡迎關注之後的文章
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69978258/viewspace-2931556/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 直播商城原始碼如何實現資料的單項選擇原始碼
- 直播app原始碼,map實現購物車選擇功能APP原始碼
- Spring-Boot 多資料來源配置+動態資料來源切換+多資料來源事物配置實現主從資料庫儲存分離Springboot資料庫
- 直播間原始碼,透過Redis實現資料快取原始碼Redis快取
- 直播帶貨系統原始碼,實現MYSQL資料庫的主從同步原始碼MySql資料庫主從同步
- PostgreSQL:資料庫的選擇SQL資料庫
- 資料庫索引選擇策略資料庫索引
- 選擇那個資料庫後 要設定 資料庫所用編碼資料庫
- 小程式:動態資料實現三級聯動選擇器
- Redis多機資料庫實現Redis資料庫
- 資料庫百科---實現多標籤篩選資料庫
- 金航數碼選擇應用 TDengine 時序資料庫,改造現有資料庫架構資料庫架構
- 報表怎麼動態選擇資料來源
- 實現多資料來源事務
- Uniapp 城市選擇JSON資料APPJSON
- 影片直播原始碼,不同業務場景需選擇不同方案去快取資料原始碼快取
- 實現Spring動態註冊多資料來源Spring
- Spring實現多資料來源動態切換Spring
- django使用多個資料庫實現Django資料庫
- 時間序列化資料庫選型?時序資料庫的選擇?資料庫
- 成品app直播原始碼搭建,常用資料處理手段程式碼分析APP原始碼
- 直播原始碼中Mysql資料庫有什麼優勢?原始碼MySql資料庫
- 影片直播app原始碼,Android TextView省略號代替多出資料APP原始碼AndroidTextView
- excel查詢資料的技術實現選擇Excel
- app直播原始碼如何實現直播間紅包功能APP原始碼
- 手機直播原始碼,JS實現頁面下拉載入資料操作原始碼JS
- mybatis怎麼實現insert into多個資料-oracle資料庫MyBatisOracle資料庫
- 影片直播app原始碼,純css實現橫向滾動APP原始碼CSS
- Spring多資料來源管理實現原理Spring
- java中如何實現多個資料來源?Java
- 專案要實現多資料來源動態切換,咋搞?
- 如何選擇合適的NoSQL資料庫SQL資料庫
- 如何為資料庫選擇最佳加密方法資料庫加密
- 資料庫字符集的選擇(轉)資料庫
- 為什麼越來越多的人選擇RDS建立MySQL資料庫?MySql資料庫
- wpf winform 選擇檔案或選擇資料夾程式碼ORM
- 多資料來源與動態資料來源的權衡
- 資料夾選擇對話方塊 JS實現(轉)JS