工作心得和總結
很久沒有更新部落格,更新部落格更是思路重新梳理的過程會加深技術的理解。工作中越來越體會中還有更多知識要去學習。目前學習的比較凌亂。先做雜記把。
1 spring動態配置資料來源
網上很多例子,都能實現,開發中存在很多疑慮和不信任,還發現了一些問題,但經過反覆測試和看原始碼,明白了原理就不會再有疑慮,注意一下幾點:
1 ) 如果資料來源動態新增寫在配置檔案裡,啟動時讀取資料,改spring 配置檔案讀資料庫連線為 屬性檔案java程式碼讀取(這個是spring的功能),如果有動態新增刪除的則需要另外配置一個配置檔案。同時修改 動態資料來源實現類 呼叫實現動態修改
AbstractRoutingDataSource 的 afterPropertiesSet 方法,,最好看下AbstractRoutingDataSource的原始碼,裡面包含很多個功能
2 )另外一個要注意的是 採用的 ThreadLocal來安全儲存當前執行緒的 資料來源,但是隻在當前執行緒有效,所以做資料庫操作時要注意,每一個 資料庫的增刪改查之前都要 進行攔截器或者Aop切面實現指定資料來源進行設定(DataSourceContextHolder.set('dbsource')),如果不設定的話極有可能 資料來源為空或切換到了預設資料來源,進而程式出錯
public class DynamicDataSource extends AbstractRoutingDataSource {
@Override
protected Object determineCurrentLookupKey() {
return DataSourceContextHolder.getDbType();
}
@Override
public void setDataSourceLookup(DataSourceLookup dataSourceLookup) {
super.setDataSourceLookup(dataSourceLookup);
}
@Override
public void setDefaultTargetDataSource(Object defaultTargetDataSource) {
super.setDefaultTargetDataSource(defaultTargetDataSource);
}
@Override
public void setTargetDataSources(Map targetDataSources) {
super.setTargetDataSources(targetDataSources);
//這句是重點
super.afterPropertiesSet();
}
}
然後重寫父類,新增方法
//用於動態新增新資料來源
public void addDataSource(Object key,Object dataSource){
this.targetDataSources.put(key, dataSource);
setTargetDataSources(this.targetDataSources);
}
public void removeDataSource(Object key){
if(null !=key&& !"".equals(key)){
this.targetDataSources.remove(key);
setTargetDataSources(this.targetDataSources);
}
}
3) 涉及到多資料來源事務的問題好多文章有了,有多種技術多種方法,就不說了
2 Netty 框架的使用
最近要求用TCP進行兩個程式通訊,所以用來Netty來實現。通過官網介紹知道,其實高併發,無阻塞,高效、低耗的安全框架。兩個看點
1) 採用多執行緒機制,在建立workgroup時,引數為空則是cpu核心×2個執行緒,有引數則使用引數
2) 採用ByteBuf 快取儲存字串位元組流,有兩種方式,堆快取和直接快取
3 存在的問題:
還用到了其他技術,但只做到了知其然但不知其所以然的境界,所以還要好好學習,好多技術例如Shiro原始碼,Vue原始碼框架,Angularjs和React, ES6,HBase,Kafka原始碼,element-ui等,需要去學習。
4 總結
學習時學習別人碰到的問題和解決方法往往比 如何做對的更能快速學習,解決的思路很重要,多看原始碼多實踐
相關文章
- webpack心得總結Web
- 工作總結
- web端功能測試心得總結!Web
- 找工作心得
- 計算機程式設計心得總結計算機程式設計
- Rxjava工作原理總結RxJava
- 2018年工作總結
- 工作經驗總結
- 微信小程式開發總結與心得微信小程式
- 硬剛正規表示式的心得總結
- 2016年終工作總結
- IYPT助教工作總結
- 2018,工作巨集觀總結
- 週記-工作小總結
- 工作隨意總結20240830
- 7.9日工作總結
- ReactNative 專案工作總結React
- 關於開發Python專案的心得總結!Python
- 網站安全滲透測試公司心得總結網站
- 【工作總結】工作為什麼總是手忙腳亂
- 工作5年的阿里Java程式設計師分享從業心得總結與面試筆記分享阿里Java程式設計師面試筆記
- bootstrap學習心得總結:css樣式設計分享bootCSS
- 九年程式人生 工作總結
- 工作經驗日常總結===20241105
- IT開發工作分類【總結】
- Git概念及工作原理總結Git
- 【工作總結】工作累死累活,結果越做越差怎麼辦?
- 遊戲前端工作流程總結遊戲前端
- SAP工作流觸發總結
- 2024/11/12日工作總結
- 2024/11/11日工作總結
- 2024/10/17日工作總結
- 2024/10/10日工作總結
- 2024/10/18日工作總結
- 2024/11/4日工作總結
- 2024/11/22日工作總結
- 2024/10/31日工作總結
- 2024/11/1日工作總結