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 371852638。
如果这篇文章对你有所帮助,不妨点个赞咯。
net core天马行空系列:SummerBoot,将SpringBoot的先进理念与C#的简洁优雅合二为一的更多相关文章
- net core天马行空系列:移植Feign,结合Polly,实现回退,熔断,重试,超时,做最好用的声明式http服务调用端
系列目录 1.net core天马行空系列:原生DI+AOP实现spring boot注解式编程 2.net core天马行空系列: 泛型仓储和声明式事物实现最优雅的crud操作 3.net core ...
- net core天马行空系列: 泛型仓储和声明式事物实现最优雅的crud操作
系列目录 1.net core天马行空系列:原生DI+AOP实现spring boot注解式编程 哈哈哈哈,大家好,我就是那个高产似母猪的三合,长久以来,我一直在思考,如何才能实现高效而简洁的仓储模式 ...
- net core天马行空系列: 一个接口多个实现类,利用mixin技术通过自定义服务名,实现精准属性注入
系列目录 1.net core天马行空系列:原生DI+AOP实现spring boot注解式编程 2.net core天马行空系列: 泛型仓储和声明式事物实现最优雅的crud操作 哈哈哈哈,大家好,我 ...
- net core天马行空系列:原生DI+AOP实现spring boot注解式编程
写过spring boot之后,那种无处不在的注解让我非常喜欢,比如属性注入@autowire,配置值注入@value,声明式事物@Transactional等,都非常简洁优雅,那么我就在想,这些在n ...
- net core天马行空系列:降低net core门槛,数据库操作和http访问仅需写接口,实现类由框架动态生成
引文 hi,大家好,我是三合.不知各位有没有想过,如果能把数据库操作和http访问都统一封装成接口(interface)的形式, 然后接口对应的实现类由框架去自动生成,那么必然能大大降低工作量,因 ...
- net core天马行空系列-微服务篇:全声明式http客户端feign快速接入微服务中心nacos
1.前言 hi,大家好,我是三合,距离上一篇博客已经过去了整整两年,这两年里,博主通关了<人生>这个游戏里的两大关卡,买房和结婚.最近闲了下来,那么当然要继续写博客了,今天这篇博客的主要内 ...
- net core天马行空系列-可用于依赖注入的,数据库表和c#实体类互相转换的接口实现
1.前言 hi,大家好,我是三合.作为一名程序猿,日常开发中,我们在接到需求以后,一般都会先构思一个模型,然后根据模型写实体类,写完实体类后在数据库里建表,接着进行增删改查, 也有第二种情况,就是有些 ...
- net core天马行空系列-各大数据库快速批量插入数据方法汇总
1.前言 hi,大家好,我是三合.我是怎么想起写一篇关于数据库快速批量插入的博客的呢?事情起源于我们工作中的一个需求,简单来说,就是有一个定时任务,从数据库里获取大量数据,在应用层面经过处理后再把结果 ...
- 朱晔和你聊Spring系列S1E2:SpringBoot并不神秘
朱晔和你聊Spring系列S1E2:SpringBoot并不神秘 [编辑器丢失了所有代码的高亮,建议查看PDF格式文档] 文本我们会一步一步做一个例子来看看SpringBoot的自动配置是如何实现的, ...
随机推荐
- js+canvas黑白棋
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- jQuery 练习 dom
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 当better-scroll遇见了react擦出的火花
关于better-scroll这个插件前面已经介绍过两次了 从原生js使用到结合服务端发送数据使用都有过介绍 今天给大家分享一下这款插件在react中遇见的坑 总之我真是对这款插件又爱又恨 每次各种 ...
- VisualStudio 自定义外部命令
通过自定义命令,可以在 VisualStudio 加上一些自定义命令,可以快速启动 git 或者做其他的事情 添加命令 首先打开工具 外部命令,点击添加,然后在弹出的窗口输入下面内容 例如添加内容是打 ...
- offsetheight 和clientheight、scrollheight、scrollTop区别
clientHeight:元素客户区的大小,指的是元素内容及其边框所占据的空间大小(经过实践取出来的大多是视口大小) scrollHeight: 滚动大小,指的是包含滚动内容的元素大小(元素内容的总高 ...
- HDU3844 Mining Your Own Business
HDU3844 Mining Your Own Business 问题描述John Digger是一个大型illudium phosdex矿的所有者.该矿山由一系列隧道组成,这些隧道在各个大型交叉口相 ...
- oracle函数 ln(y)
[功能]返回以e为底的y的对数(e为数学常量) [参数]y,数字型表达式 (条件y>0) [返回]数字 [示例] select exp(3),exp(-3),ln(20.0855369),ln( ...
- HDU 1875 最小生成树prim算法
#include<iostream> #include<cstdio> #include<algorithm> #include<cmath> #inc ...
- Python--day23--组合
- poj1573
题意:给出一个矩形,N,E,S,W分别代表进行移动的方向,如果走出矩形网格则输出经过的网格数,如果在矩形网格内循环,则输出没进入循环之前所走过的网格数和循环所经过的网格数: 思路:创建两个数组,一个字 ...