1. 程式人生 > >net core天馬行空系列:SummerBoot,將SpringBoot的先進理念與C#的簡潔優雅合二為一

net core天馬行空系列:SummerBoot,將SpringBoot的先進理念與C#的簡潔優雅合二為一

系列目錄

1.net core天馬行空系列:原生DI+AOP實現spring boot註解式程式設計

2.net core天馬行空系列: 泛型倉儲和宣告式事物實現最優雅的crud操作

3.net core天馬行空系列: 一個介面多個實現類,利用mixin技術通過自定義服務名,實現精準屬性注入

4.net core天馬行空系列:移植spring cache,實現支援條件限定,事務環繞,多級複用的註解式快取(除了多級複用以外,程式碼已完成,部落格正在寫)

5.net core天馬行空系列:利用AOP,在dapper的基礎上進一步封裝,實現只需寫介面,並新增相應註解,即可實現增刪改查(程式碼已完成,部落格正在寫)

6.net core天馬行空系列:移植阿里巴巴開源的Druid資料庫連線池,詳解多執行緒在web開發中的應用(程式碼完成度50%,卡在了AQS在.net裡沒有相應的實現類,正在磨豆腐)

正文開始

       哈哈哈哈,大家好,我就是高產似母豬的三合,好久沒寫部落格了,因為最近幾個月在不斷的加班,加班時長平均每個月120小時以上。今天是2020年的第一天,作為一條程式汪,覺得不做點啥好像對不起這個特別有紀念意義的日子,所以呢,就把之前部落格裡寫過的一些實現,封裝成一個開源專案,因為是spring boot在net core上的復現,所以,它的名字,就叫summerBoot,今天是第一版,自然,有非常多的細節沒有兼顧到,也有很多bug可能連我自己也還沒發現,甚至,我連單元測試都沒有寫,但是,這並不妨礙我釋出第一個版本,畢竟趕日子比較重要,哈哈哈哈哈哈,先放github地址和nuget包名稱,本專案基於MIT協議開源,net core2.1版本即可使用,但是為了加快.net core 3.1的普及,最低版本要求3.1,可克隆原始碼,自行改成2.1編譯。

github地址:https://github.com/TripleView/SummerBoot

nuget搜尋:SummerBoot

王婆要開始賣瓜了,嘿嘿嘿

summerBoot優點如下:

1.利用註解+AOP+微軟原生DI,實現普通類級別的攔截(非middleWare和controller層面上的攔截),從而在net core裡復現了許多springBoot裡的功能,先進的程式設計理念帶來的影響是,使用summerBoot的團隊,將會有統一的,更優雅的程式碼實現方式,相同功能的程式碼將會被剝離出來,放到AOP層面上來統一實現,一個註解頂20行程式碼,不是夢。

2.完全面向介面設計,任何模組可自定義替換。

3.文件齊全,每個模組是如何進行設計以及實現的,本系列部落格都有相應的文章去講解,免去了看原始碼卻沒註釋的煩惱,同時,也可以清晰的看到設計演進,授人以魚莫若授人以漁,做最有誠意的開源。

使用教程

github專案裡,自帶了一個example的子專案,裡面大部分用法都有了,但是!作為一個靈魂畫手,不展示一下我高超的畫技怎麼行呢。

 

這樣註冊,模仿微軟原生DI的註冊方式,實現了AddSbScope,AddSbSingleton,AddSbTransient,以及對應的try版本,比如TryAddSbTransient。

註冊的時候也可以加入攔截器,就像這樣

只需要寫介面,以及註解,就能實現增刪改查的倉儲,他長這樣

注入的時候像下面這樣

註解式快取像這樣

寫在最後

       他山之石,可以攻玉,本專案致力於移植優秀的各種實現,剛開坑,如果有興趣的小夥伴,可以加QQ群 799648362。

       如果這篇文章對你有所幫助,不妨點個贊咯。