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的自动配置是如何实现的, ...
随机推荐
- 使用spring jpa 时,利用nativeQuery,获取数据,无需新建实体,按照别名返回Json数据
刚开始是这样写的 @Query(value = "SELECT ll.user_id id ,u.catong_img catong_img,ll.locationId location_i ...
- Spring Security 的登录密码验证过程 UsernamePasswordAuthenticationFilter
认证过程如下 一.先判断请求(请求必须是post请求)地址是否为配置的 login-processing-url 值(默认/j_spring_security_check),如果不是,则放行,进入下一 ...
- Android ListView批量选择(全选、反选、全不选)
APP的开发中,会常遇到这样的需求:批量取消(删除)List中的数据.这就要求ListVIew支持批量选择.全选.单选等等功能,做一个比较强大的ListView批量选择功能是很有必要的,那如何做呢? ...
- Python进阶04函数的参数对应
我们已经接触过函数(function)的参数(arguments)传递.当时我们根据位置,传递对应的参数.我们将接触更多的 参数传递方式. 回忆一下位置传递: def f(a,b,c): return ...
- Mysql统计信息处理及binlog解释
TODO use db_name; -- 分析表 ANALYZE TABLE table_name; -- 查看表信息 ; -- 查看索引 SHOW INDEX FROM table_name; ht ...
- 什么是CGI、FastCGI、PHP-CGI、PHP-FPM、Spawn-FCGI?
https://mp.weixin.qq.com/s/Co1LxS2h_ILh9syOmshjZg 什么是CGI CGI全称是“公共网关接口”(Common Gateway Interface),HT ...
- ElementUI分页Pagination自动到第一页
当数据量过多时,使用分页请求数据. 设置分页的页数自动回到第一页. 例: <div class="pagination"> <el-pagination back ...
- ORACLE内部操作
当执行查询时,ORACLE采用了内部的操作. 下表显示了几种重要的内部操作. ORACLE Clause 内部操作 ORDER BY SORT ORDER BY UNION UNION-ALL MIN ...
- HTML5--语法
一.标记方法 1.内容类型(ContentType)还是.text/html 2.声明:<!DOCTYPE html SYSTEM “about:legacy-compat”> 3.字符编 ...
- jieba分词工具的使用方法
作为我这样的萌新,python代码的第一步是:#coding=utf-8 环境:python3.5+jieba0.39 一.jieba包安装方法: 方法1:使用conda安装 conda instal ...