基于Eclipse平台,使用Java语言编写IoC和AOP的实现程序.doc

基于Eclipse平台,使用Java语言编写IoC和AOP的实现程序.doc

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于Eclipse平台,使用Java语言编写IoC和AOP的实现程序.doc

引言 框架从某种意义上讲是某种应用的半成品,它是由一组组件所构成。对于程序的重用性与所设计的系统的扩展性以达到开发周期的缩减的目的与开发质量的提高等目的,往往是框架一直追求并良好的实现了的。 在软件设计中,最终遵循的还是一个设计理念,就是“高内聚,低耦合”。框架一般是将问题分割成若干子问题进行一一攻破,从而起到易于控制、扩展,易于分配资源的效果。设计过程中,常常引入“层”的概念,及将各个义务分层实现。其间难免会出现耦合,而耦合度过高会降低系统的扩展性和维护性。而框架主要工作在层与层之间,很好的解决了这一问题。在软件设计中有一个概念叫做IoC,及控制反转,也叫DI(依赖注入),它主要就是实现层与层之间的松耦合。 面向对象编程在软件设计中无处不在,非常完美的解决了代码重用。但有时候具体的业务贯穿整个系统,而往往这个业务是重复出现的,利用面向对象已不能很好解决。在这里便出现了AOP(面向切面编程),将其中相同的业务抽取出来进行统一解决。在这里不得不说一下Spring框架的强大魅力,Spring对IoC和AOP的操作可谓前无古人。 本文主要利用IoC和AOP的概念,解决层与层之间的依赖关系以及重复业务的处理。 研究背景 上世纪末与本世纪初,J2EE开始盛行,。。。。ava语言不同于其他编程语言,其优势主要体现在它具有通用、高效、安全等优点。而且该语言的应用领域也极其广泛。在微型电脑、数据中心、超级计算机以及各种网页应用等都能见到Java的身影。虽然Java的编程风格与之C、C++非常接近,但与C语言不同的是,Java是完全的面相对象,。Java一改C中指针的概念,取而代之的是引用的概念。同时也摒弃了C中运算符重载和多继承等特征。在此基础上,Java也增加。。。。。Eclipse Platform,它允许第三方工具的无缝对接,从而起到无须辨别具体工具的功能体现在哪里的作用。控制反转一般分为两种类型,依赖注入(Dependency Injection,简称DI)和依赖查找(Dependency Lookup)。依赖注入应用比较广泛。。EJB和Apache Avalon 都使用这种方式。。编写一个IB,注入将通过这个接口进行。IBiz{ /** * @param dao 数据访问层对象 */ public void getDao(Dao dao); } 对于想要进行数据库操作的类就必须得实现IBiz接口,业务逻辑类B实现这个接口IB。IBiz接口的类,重写了getDao方法 */ public class Biz implements IBusiness{ private Dao dao; @Override public void getDao(Dao dao){ this.dao=dao; } } 只有实现IBiz接口才能完成依赖注入。Set方法注入就是在注入的类中定义一个Set方法。构造注入就是。 AOP(面向切面编程) AOP就是Aspect Oriented Programming的缩写,意为:面向切面编程通过预编译和动态代理实现程序功能的统一维护的技术。AOP是OOP的延续,是软件开发中的一个热点,是函数式编程的一种衍生范型。;。然而殊途同归,实现AOP的技术特性却是相同的,分别为:join point(连接点):。point cut(切入点):。。advice(通知):。aspect(方面):。introduce(引入):。有的AOP工具又将其称为mixin。 。Annotation(注解)是JDK5.0及以后版本引入的。。。。编写文档:。代码分析:。编译检查:public @interface Component { //组件在HashTable中的名字,当为空时默认为组件类名的小写 public String name() default ; //组件是否存在单例,默认为存在 public boolean isSingleton() default true; } public @interface Property { //需要注入的属性注入的对象的名称,默认为空时则直接获取组件中属性的名称 public String ref() default ; } @Aspect注解: public @interface Aspect { //切面类的名称 public String name() default ; }public @interface Interception { //拦截的方法 public String[]methods(); }String packageInfo=; URL url=XMLParse.class.getResource(); File file=n

文档评论(0)

mghkfg58 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档