系列目录

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. js+canvas黑白棋

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  2. jQuery 练习 dom

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. 当better-scroll遇见了react擦出的火花

    关于better-scroll这个插件前面已经介绍过两次了 从原生js使用到结合服务端发送数据使用都有过介绍 今天给大家分享一下这款插件在react中遇见的坑  总之我真是对这款插件又爱又恨 每次各种 ...

  4. VisualStudio 自定义外部命令

    通过自定义命令,可以在 VisualStudio 加上一些自定义命令,可以快速启动 git 或者做其他的事情 添加命令 首先打开工具 外部命令,点击添加,然后在弹出的窗口输入下面内容 例如添加内容是打 ...

  5. offsetheight 和clientheight、scrollheight、scrollTop区别

    clientHeight:元素客户区的大小,指的是元素内容及其边框所占据的空间大小(经过实践取出来的大多是视口大小) scrollHeight: 滚动大小,指的是包含滚动内容的元素大小(元素内容的总高 ...

  6. HDU3844 Mining Your Own Business

    HDU3844 Mining Your Own Business 问题描述John Digger是一个大型illudium phosdex矿的所有者.该矿山由一系列隧道组成,这些隧道在各个大型交叉口相 ...

  7. oracle函数 ln(y)

    [功能]返回以e为底的y的对数(e为数学常量) [参数]y,数字型表达式 (条件y>0) [返回]数字 [示例] select exp(3),exp(-3),ln(20.0855369),ln( ...

  8. HDU 1875 最小生成树prim算法

    #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #inc ...

  9. Python--day23--组合

  10. poj1573

    题意:给出一个矩形,N,E,S,W分别代表进行移动的方向,如果走出矩形网格则输出经过的网格数,如果在矩形网格内循环,则输出没进入循环之前所走过的网格数和循环所经过的网格数: 思路:创建两个数组,一个字 ...