從零開始寫Java項目

偶然機會,開始用Java寫項目。以前一直奔波於JavaScript的體系中,從Jquery、Angualr、Node、Vue,百花爭豔。 算法

事件插件

八月底入職開始就着手SpringCloud一系列學習,最終調研集成Mybatis-plus。開始編寫的功能是個事件管理的公共插件。數據庫

  • 事件註冊
  • 事件發佈,並支持各個業務模塊發佈不一樣實體類信息。支持異步、同步發佈。
  • 事件訂閱,訂閱者能夠自定義訂閱某種或者某些事件

期間用到了反射、泛型、線程、線程安全隊列等知識,惡補Java基礎語法、JVM運行原理勉強寫完事件插件並測試實踐於項目中。安全

反射

Class c = Class.forName(clazz);
BaseApplicationEvent baseApplicationEvent = (BaseApplicationEvent) applicationContext.getBean(c)
baseApplicationEvent.callbackEvent(eventModel)併發

泛型

public class EventModel<T> implements Serializableapp

線程

static class AsyncEvent extends Thread implements Runnable異步

線程安全隊列

public static List<EventModel> eventQueue = new Vector<EventModel>()學習

存儲卷模塊

第一個開發的業務模塊就是這個存儲卷模塊,業務很少贅言。從driver層開始往上寫,構建Client管理器,編寫service層邏輯,輸出接口。期間涉及到:測試

  • 事務保證數據一致性
  • 定義系統返回碼
  • 封裝controller返回體
  • 封裝校驗註解
  • 利用Spring切面攔截處理
  • 封裝系統異常
  • 記錄日誌,日記追蹤軌跡,聚合日誌
  • 熟悉Mybatis-plus快捷語法
  • 加併發鎖機制,避免數據庫數據混亂
  • 經過自研任務管理器發起單次異步任務、週期任務
  • 經過自研調度算法調度建立

對象存儲

對象存儲模塊涉及差別主要集中在業務,也涉及了存儲卷幾乎所有知識點。期間主要涉及插件

  • 調取第三方SDK Client,封裝第三方Client。

後記

寫了兩個月發現難點主要集中在蜿蜒曲折的業務流程上,直到如今磕磕絆絆建立出一個裸機。建立一個自帶安裝過軟件的虛擬機,還才起步,願Java仕途坦蕩。 線程

相關文章
相關標籤/搜索