系列目录

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 371852638。

如果这篇文章对你有所帮助,不妨点个赞咯。

net core天马行空系列:SummerBoot,将SpringBoot的先进理念与C#的简洁优雅合二为一的更多相关文章

  1. net core天马行空系列:移植Feign,结合Polly,实现回退,熔断,重试,超时,做最好用的声明式http服务调用端

    系列目录 1.net core天马行空系列:原生DI+AOP实现spring boot注解式编程 2.net core天马行空系列: 泛型仓储和声明式事物实现最优雅的crud操作 3.net core ...

  2. net core天马行空系列: 泛型仓储和声明式事物实现最优雅的crud操作

    系列目录 1.net core天马行空系列:原生DI+AOP实现spring boot注解式编程 哈哈哈哈,大家好,我就是那个高产似母猪的三合,长久以来,我一直在思考,如何才能实现高效而简洁的仓储模式 ...

  3. net core天马行空系列: 一个接口多个实现类,利用mixin技术通过自定义服务名,实现精准属性注入

    系列目录 1.net core天马行空系列:原生DI+AOP实现spring boot注解式编程 2.net core天马行空系列: 泛型仓储和声明式事物实现最优雅的crud操作 哈哈哈哈,大家好,我 ...

  4. net core天马行空系列:原生DI+AOP实现spring boot注解式编程

    写过spring boot之后,那种无处不在的注解让我非常喜欢,比如属性注入@autowire,配置值注入@value,声明式事物@Transactional等,都非常简洁优雅,那么我就在想,这些在n ...

  5. net core天马行空系列:降低net core门槛,数据库操作和http访问仅需写接口,实现类由框架动态生成

    引文   hi,大家好,我是三合.不知各位有没有想过,如果能把数据库操作和http访问都统一封装成接口(interface)的形式, 然后接口对应的实现类由框架去自动生成,那么必然能大大降低工作量,因 ...

  6. net core天马行空系列-微服务篇:全声明式http客户端feign快速接入微服务中心nacos

    1.前言 hi,大家好,我是三合,距离上一篇博客已经过去了整整两年,这两年里,博主通关了<人生>这个游戏里的两大关卡,买房和结婚.最近闲了下来,那么当然要继续写博客了,今天这篇博客的主要内 ...

  7. net core天马行空系列-可用于依赖注入的,数据库表和c#实体类互相转换的接口实现

    1.前言 hi,大家好,我是三合.作为一名程序猿,日常开发中,我们在接到需求以后,一般都会先构思一个模型,然后根据模型写实体类,写完实体类后在数据库里建表,接着进行增删改查, 也有第二种情况,就是有些 ...

  8. net core天马行空系列-各大数据库快速批量插入数据方法汇总

    1.前言 hi,大家好,我是三合.我是怎么想起写一篇关于数据库快速批量插入的博客的呢?事情起源于我们工作中的一个需求,简单来说,就是有一个定时任务,从数据库里获取大量数据,在应用层面经过处理后再把结果 ...

  9. 朱晔和你聊Spring系列S1E2:SpringBoot并不神秘

    朱晔和你聊Spring系列S1E2:SpringBoot并不神秘 [编辑器丢失了所有代码的高亮,建议查看PDF格式文档] 文本我们会一步一步做一个例子来看看SpringBoot的自动配置是如何实现的, ...

随机推荐

  1. MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数

    MySql计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数 计算两日期时间之间相差的天数,秒数,分钟数,周数,小时数,这里主要分享的是通过MySql内置的函数 TimeStampDiff() ...

  2. iOS 9整理

    WWDC 2015上那些酷酷的新内容(一) http://www.cocoachina.com/apple/20150611/12120.html

  3. Xcode编译报错:< Apple Mach-O Linker Warning > clang: error: no such file or directory: 'xxxx'

    Xcode编译报错概述: clang: error: no such file or directory: 'CoreGraphics' 一般原因是链接库内容导入丢失,这种的排查下target - B ...

  4. 12 将类处理为excel,再将excel处理为类(界限计划3)

    中间使用map作为中间处理 将类处理为excel: 1.读取类转为map //读取btl,转为map public static Map getBtlMap(String rule, BTLDAO b ...

  5. zip解决杨辉三角问题

    杨辉三角原型: / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ 实现: a = [1] while True: print(a) ...

  6. React Native声明属性和属性确认

    属性声明 因为用React Native创建的自定义组件可以复用, 我们开发过程中可能一个项目组有多个人同时开发,其他同事可能会用到我们自定义的组件, 但是他们使用的时候很容易忘记使用某些属性,这时候 ...

  7. 「HNOI2015」菜肴制作

    「HNOI2015」菜肴制作 这道题想到了其实还挺水的,一开始我直接用小根堆拓扑然后就爆0了,然后我又用十万个堆搜索,T30,还是xkl告诉我要倒着拓扑. 首先要建反图,对于入度为0的点,较小的点先输 ...

  8. es6新增语法之`${}`

    这是es6中新增的字符串方法 可以配合反单引号完成拼接字符串的功能 1.反单引号怎么打出来?将输入法调整为英文输入法,单击键盘上数字键1左边的按键. 2.用法step1: 定义需要拼接进去的字符串变量 ...

  9. 2019-8-31-PowerShell-通过-WMI-获取系统服务

    title author date CreateTime categories PowerShell 通过 WMI 获取系统服务 lindexi 2019-08-31 16:55:58 +0800 2 ...

  10. Window setTimeout() 方法

    定义和用法 setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. 注意:如果你只想重复执行可以使用 setInterval() 方法. 可以使用clearTimeout()方法来阻 ...