- 2
- 0
- 约 6页
- 2016-12-09 发布于贵州
- 举报
利用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系统会经常出现不同登陆角色,这些角色对系统的操作通常会有不同的权限。传统的权限控制代码是在一般的业务代码里完成,如果某个角色的权限有了变动的话需要
您可能关注的文档
- 关于图书馆学专门研究方法之分析.docx
- 关于在若干管理岗位推行品行考核的请示.doc
- 关于城市公共设施建设.doc
- 关于多能多-CCT的市场分析以及我们工作的改进建议.doc
- 关于大学生对社团态度调查1.doc
- 关于大学生职业规划以及期望工作地点研究报告设计.doc
- 关于奥林匹克域名的法律对策研究与分析.doc
- 关于大学生科研状况调查分析与对策研究.doc
- 关于安保部绩效考核方案.doc
- 关于实测实量体系及实施的浅谈.docx
- 2025-2026学年天津市和平区高三(上)期末数学试卷(含解析).pdf
- 2025-2026学年云南省楚雄州高三(上)期末数学试卷(含答案).pdf
- 2025-2026学年甘肃省天水市张家川实验中学高三(上)期末数学试卷(含答案).docx
- 2025-2026学年福建省厦门市松柏中学高二(上)期末数学试卷(含答案).docx
- 2025-2026学年广西钦州市高一(上)期末物理试卷(含答案).docx
- 2025-2026学年河北省邯郸市临漳县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省石家庄二十三中七年级(上)期末历史试卷(含答案).docx
- 2025-2026学年海南省五指山市九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省唐山市玉田县九年级(上)期末化学试卷(含答案).docx
- 2025-2026学年河北省邢台市市区九年级(上)期末化学试卷(含答案).docx
最近下载
- 兰科植物促生菌筛选与人工栽培技术研究.pdf
- 氢氧化钠(片碱)MSDS安全技术说明书.docx
- 国家开放大学电大《成本会计》试题及答案.pdf
- 数学分析第四版下册课后习题答案.pdf
- 数学分析第四版下册课后习题答案.docx
- 2025年秋国家开放大学《商务英语3》形考任务参考答案.pdf
- Unit 2 Know your body Speed up 外研版(三起)(2024)英语三年级下册.pptx VIP
- 2026年春季开学教师收心会校长发言:骏驰启新程,笃行育新人;凝心再聚力,实干谱新篇.docx VIP
- Unit 2 Know your body Start up 外研版(三起)(2024)英语三年级下册.pptx VIP
- 空客A320飞行手册教程.doc VIP
原创力文档

文档评论(0)