LindAgile.Modules模块化的设计
在LindAgile中有一个比较主推的技术,就是模块化,一切组件都可以被抽象成一个小小的模块,而每个小模块的实现可能又有多种方式,如日志模块可以有LindLoger,Log4net等实现,而具体在程序中使用哪种方式,是否由模块的注册顺序决定的,在程序初始化时,一切会注册这些模块,一个日志模块,如果先注册了log4net,后注册了lindLogger,那种先注册的将会被覆盖。
日志模块-图示
aaarticlea/png;base64,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" alt="" />
模块的注册与使用-图示
aaarticlea/png;base64,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" alt="" />
模块化的入口
对于模块的扩展,大叔建议在具体项目添加扩展方法,事实上在lindAgile框架里也提供了一些标准的扩展方法,方便大家对模块进行注册!
#region 模块化
ModuleManager.Create()
.UseAutofac()
.UseLindLogger()
.UseEfRepository()
.UseDefaultMq()
.UseESBRedis()
.InitAllPlugins();
#endregion
而对于使用来说,直接可以使用Module的Resolve来生产指定接口的指定对象,非常方便!
var old = PluginManager.Resolve<IAopHelloTest>();
var result = old.GetLogger("bobo");
上面的代码中,我们使用的是LindAgile的面向切面的方法缓存,将方法的返回值进行缓存,一个缓存的失效由另一个方法来控制,而不是传统上的时间!
public interface IAopHelloTest : IAspectProxy
{
List<WebLoggers> GetLogger(string name);
void AddLogger(WebLoggers entity);
}
public class AopHelloTest : IAopHelloTest
{
[CachingAspect(CachingMethod.Get)]
public List<WebLoggers> GetLogger(string name)
{
return new Tsingda_Prizes_ManagerEntities().WebLoggers.Take().ToList();
}
[CachingAspect(CachingMethod.Remove, "GetLogger")]
public void AddLogger(WebLoggers entity)
{ }
}
这种设计在Lind框架中也有出现过,只是在LindAgile里把它完善了,再配合模块化,插件化等组件,能得数据集缓存达到了前所末有的高度!
我不要复杂的设计
我不要过重的设计
我只要简洁的,松耦合的实现!
LindAgile.Modules模块化的设计的更多相关文章
- Slickflow.NET 开源工作流引擎基础介绍(六)--模块化架构设计和实践
前言:在集成Slickflow.NET 引擎组件过程中,引擎组件需要将用户,角色等资源数据读取进来,供引擎内部调用:而企业客户都是有自己的组织架构模型,在引入模块化架构设计后,引擎组件的集成性更加友好 ...
- 12. 前后端联调 + ( proxy代理 ) + ( axios拦截器 ) + ( css Modules模块化方案 ) + ( css-loader ) + ( 非路由组件如何使用history ) + ( bodyParser,cookieParser中间件 ) + ( utility MD5加密库 ) + ( nodemon自动重启node ) + +
(1) proxy 前端的端口在:localhost:3000后端的端口在:localhost:1234所以要在webpack中配置proxy选项 (proxy是代理的意思) 在package.jso ...
- Lind.DDD.DynamicModules动态模块化的设计
回到目录 在Lind.DDD框架里有Module,主要用于全局自动添加的模块,它类似于ABP系统里的Module,但有时过于自动化了可能使系统太死板,而有时将需要的模块手动载入可能对我们更合适,所以大 ...
- YII的Modules模块化
转载来源: http://blog.csdn.net/mengxiangbaidu/article/details/7041296 http://blog.csdn.net/colzer/articl ...
- react antd样式按需加载配置以及与css modules模块化的冲突问题
通过create-react-app脚手架生成一个项目 然后运行npm run eject 把webpack的一些配置从react-scripts模块弹射出来, 方便自己手工增减,暴露出来的配置文件在 ...
- NuGet 本地服务器 公司组件库搭建 上传下载操作 模块化灵活设计
新年第一更,关于如何搭建NuGet的本地服务器,以及部署IIS,以此搭建公司自己的组件仓库,方便所有的组件更新,管理,测试等等操作. 关于如何在NuGet中下载指定的组件,参考这篇文章:http:// ...
- css模块化及CSS Modules使用详解
什么是css模块化? 为了理解css模块化思想,我们首先了解下,什么是模块化,在百度百科上的解释是,在系统的结构中,模块是可组合.分解和更换的单元.模块化是一种处理复杂系统分解成为更好的可管理模块的方 ...
- 【Nginx】模块化设计
高度模块化的设计是Nginx的架构基础.全部模块都是以ngx_module_t结构体表示,该结构体内部定义了7个回调方法.它们负责模块的初始化和退出.commands成员是一个包括有ngx_comma ...
- thinkphp 模块化设计
一个完整的ThinkPHP应用基于模块/控制器/操作设计,并且,如果有需要的话,可以支持多入口文件和多级控制器. ThinkPHP3.2采用模块化的架构设计思想,对目录结构规范做了调整,可以支持多模块 ...
随机推荐
- python 实例方法,类方法和静态方法
在学习python代码时,看到有的类的方法中第一参数是cls,有的是self,经过了解得知,python并没有对类中方法的第一个参数名字做限制,可以是self,也可以是cls,不过根据人们的惯用用法, ...
- 微信端解决a标签链接 失效的问题
最近常碰到这个问题就是 在微信端点击a标签链接的时候,第一次正常界面跳转.但是,界面重新跳转回来再次点击a标签的话 .出现 界面不跳转,但是进度条加载完毕,点击多次页面无法跳转. 解决办法 在链接后边 ...
- Nginx配置同一个域名同时支持http与https两种方式访问
Nginx配置同一个域名http与https两种方式都可访问,证书是阿里云上免费申请的 server{listen 80;listen 443 ssl;ssl on;server_name 域名;in ...
- 在mysql 5.6的环境下修改生产环境的表结构(在线ddl) ----工具pt-osc
随着需求的变化越来越快,在线修改表结构变得越来越需要. 在mysql5.6以前,mysql的修改表结构操作会锁表,这样就会造成开发人员或者DBA修改表结构必须要等到凌晨流量谷值或者停服修改.这样必定会 ...
- 原生JS跨浏览器事件封装处理
引子:用javascript给元素绑定事件,我们可以用addEventListener这个方法,然而这个方法有兼容问题,比如在IE浏览器上面就无效,在IE上面要用attachEvent这个方法 一.a ...
- 海康/大华 IpCamera RTSP地址和格式
海康:rtsp://[username]:[password]@[ip]:[port]/[codec]/[channel]/[subtype]/av_stream说明:username: 用户名.例如 ...
- 在spring boot环境中使用fastjson + redis的高速缓存技术
因为项目需求,需要在spring boot环境中使用redis作数据缓存.之前的解决方案是参考的http://wiselyman.iteye.com/blog/2184884,具体使用的是Jackso ...
- 阿里云centos 安装和配置 DokuWiki
安装 1) 添加虚拟主机:由于我的 阿里云CentOs服务器 安装了oneinstack的一键部署PHP.JAVA.Nginx等环境,所以域名配置很方便,照着文档一步一步做就可以了 cd /root/ ...
- android webview和 javascript 进行交互
HTML5进行app开发具有开发快,跨平台等优点,但是当客户需要访问照相机或者调用摄像头等硬件的时候,H5就会有限制,必须要调用原生方法进行设备访问.下面简要介绍JS和原生方法互相调用的方法: 1 在 ...
- sysbench压测mysql
MySQL数据库测试 select 1.先创建数据库test,再准备数据 time /usr/local/sysbench/bin/sysbench --test=oltp --num-threa ...