- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
利用Castle框架中IOC技术实现权限服务.
利用Castle框架中IOC技术实现权限服务 杨扬1,李业田 2, 1武汉理工大学计算机系,湖北武汉(430063) 2武汉理工大学计算机系,湖北武汉(430063) E-mail:honey0371@ 摘 要:介绍了.NET平台下一个开源框架-Castle框架和IOC的一些概念。以人事管理系统为例分析了传统的权限控制方法的弊端和采用IOC模式的优势。详细描述了如何运用Castle中的IOC技术实现权限服务。 关键词:Castle、IOC、权限服务 中图分类号:TP311.5 1. 引 言 面对软件规模的日益复杂,一些新的软件开发方法不断出现,各种新的软件工程技术在开发中得到了广泛应用。现代软件工程更加强调软件架构设计,良好的系统架构对开发一个可扩展、易维护、可伸缩的系统至关重要。当今两大主流开发平台是Microsoft 公司的. Net 平台和Sun 公司的J2EE平台。.Net平台以开发效率高、简单易用有后起之优势, 然而J2EE在开发框架方面却更加成熟。对此,在微软开发阵营里也相继推出了一系列开源框架。其中Castle 就是针对. Net 平台下开发的一个非常优秀的开源框架。该框架既保持了. Net 平台下快速开发的优势,又使整个系统的架构非常合理[1]。 2. Castle框架介绍 Castle[2]是.Net系统级框架,它通过将一些成熟开源应用进行无缝整合而成的一套完善的应用系统框架,这其中包括了ActiveRecord、AspectSharp、MonoRail及MicroKernel/Windsor。其中MicroKernel是IOC框架的核心,也是整个Castle框架的核心,Windsor是对MicroKernel的扩展,是一个真正适合使用的IOC框架,MicroKernel/Windsor是Castle的底层核心实现,它采用IoC容器对系统进行运行期动态设置,主要包括Facilities、Components、Services三大部分。 MicroKernel和Windsor是Castle的IOC框架,通常使用的是Windsor。对于接口注入、设值注入、构造器注入这3种注入方式,Windsor将设值注入和构造器注入作为一种来对待,同时对于类间的依赖,不需要在配置文件中体现,这种依赖框架会自动在配置文件中查找被依赖类的配置,然后自动建立关联关系。相比之下,Spring.Net需要在配置配置文件中详细的描述每一个对象对其他对象的依赖。在Castle IOC容器中,提出了自动装配(Auto-Wiring)的概念,即由容器自动管理组件之间的依赖关系,我们无需自己编写XML配置文件来配置组件之间的依赖关系。Castle正是通过Windsor容器自动处理对象之间的依赖关系(即实现自动装配)。因此从这一点来看Castle的使用比S方便。 3. IOC介绍 反转控制(IoC, Inversion of Control)[3],又称依赖注入(DI, Dependency Injection),是面向对象领域新兴的编程思想。简单地说,IoC就是指由容器来控制程序之间的关系,而非传统实现中的由程序代码直接操控。 IoC是一种用来解决组件(实际上也可以是简单的类)之间依赖关系、配置及生命周期的设计模式,其中对组件依赖关系的处理是IoC的精华部分。IoC的实际意义就是把组件之间的依赖关系提取(反转)出来,由容器来具体配置。这样,各个组件之间就不存在紧密耦合的关系,任何组件都可以最大程度的得到重用。运用了IoC模式后我们不再需要自己管理组件之间的依赖关系,只需要声明由容器去实现这种依赖关系。就好像把对组件之间依赖关系的控制进行了倒置,不再由组件自己来建立这种依赖关系而交给容器去管理。容器是通过查看方法的参数表做到的,也可能是根据配置数据如XML来实现的[4]。 在面向对象设计过程中经常涉及到一个对象引用另一个对象,如图1所示,对象A直接引用对象B,这样就导致了对象A依赖于对象B,而且,随着开发的不断深入和需求的变化,这种依赖迁移的时间和次数不可预知,如果系统中存在多处这样的依赖关系,那么系统的演化和维护将会变得异常困难。 图1 IoC原理图 IoC被用来改变这种不利的局面,它把对象A对对象B的依赖反转过来:让A和B各自独立的变化,仅仅当A在需要调用B的时候通过IoC容器将依赖关系主动注入到A中,完成依赖的传递,使得B对A可用,这样当对象B改变时A可以保持不变,这种对依赖的控制由直接主动变为间接被动的过程大大增加了系统的灵活性、扩展性和可维护性。 4. 权限服务设计 MIS系统会经常出现不同登陆角色,这些角色对系统的操作通常会有不同的权限。传统的权限控制代码是在一般的业务代码里完成,如果某个角色的权限有了变动的话需要
您可能关注的文档
- 利于可持续发展的“功率元器件”和电源IC技术的相关新产品及专业术语解说..doc
- 利刃快速运货物流管理系统三稿---吴昊..doc
- 利川市2014年教师资格定期注册上报初审材料注意事项..doc
- 利尿剂治疗高血压的中国专家共识(第三稿)..doc
- 利息及其本质..doc
- 利德治疗仪使用方法..docx
- 利息理论课程设计..doc
- 利扎曲坦5mg和10mg与舒马曲坦25mg和50mg治疗偏头痛的交叉比较-中文..doc
- 判断顶部的四个小技巧..doc
- 刨根解膝膝关节运动损伤与防护沙龙..docx
- 利用CASTEP模拟计算实例1..doc
- 利用ChariotEndpoint测试网络吞吐量..doc
- 利用CloudXNS的分线解析CNAMEX以及私有线路功能实现多CDN负载均衡..docx
- 利用CodeVisionAVR编译器实现Atmega64单片机Bootloader程序对RWW编程详解..doc
- 利用CAD布局功能实现图件分幅..doc
- 利用COREX尾气还原铁矿石生产..doc
- 利用CryptoAPI实现Hash算法..docx
- 利用CPSLite网络质量感知系统分析主动发现网络问题..docx
- 利用Civil3D进行道路建模2..doc
- 利用CoolEditPro制作自己的原声Music..doc
文档评论(0)