Spring中反向掌握和面向切面编程的操纵[Java编程]
本文“Spring中反向掌握和面向切面编程的操纵[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
引言
在J2EE的整个发展历程中,目前恰是一个非常时刻.从很多方面来说,J2EE都是一个巨大的成功:它成功地在早年没有尺度的地方成立了尺度;大大晋升了企业级软件的开放程度,并且得到了整个行业和开辟者的遍及承认.但是,J2EE在一些方面已经开始捉襟见肘.J2EE利用开辟的本钱普通很高.J2EE利用项目至少和早年的非J2EE项目一样简单失利——假如不是更简单失利的话.这样的失利率高得让人难以承受.在这样的失利率之下,软件开辟几近变成了试试看.而在J2EE遭受失利的场景中,EJB普通都扮演侧重要的角色.因此,J2EE社群不断地向着更简单的办理筹划、更少利用EJB的方向发展[1].但是,每个利用程序都需求一些底子设备,回绝利用EJB并不意味着回绝EJB所采取的底子设备办理筹划.那么,若何操纵现有的框架来供应这些底子设备服务呢,伴随着这个问题的提出,一个轻量级的J2EE办理筹划呈现了,这就是Spring Framework.
Spring是为简化企业级系统开辟而诞生的,Spring框架为J2EE利用常见的问题供应了简单、有效的办理筹划,利用Spring,你可以用简单的POJO(Plain Old Java Object)来实现那些从前只有EJB才能实现的功效.这样不只是能简化服务器端开辟,任何Java系统开辟都能从Spring的简单、可测试和松耦合特点中受益.可以简单的说,Spring是一个轻量级的反向掌握(IoC)和面向切面编程(AOP)容器框架[3].Spring IoC,借助于依靠注入计划情势,使得开辟者不用理睬对象自身的生命周期及其关系,并且可以改进开辟者对J2EE情势的利用;Spring AOP,借助于Spring实现的拦阻器,开辟者可以实现以声明的方法利用企业级服务,比方安全性服务、事件服务等.Spring IoC和 Spring ; AOP组合,一同形成了Spring,这样一个有机整体,使得构建轻量级的J2EE架构成为大概,并且事实证明,非常有效.没有Spring IoC的Spring AOP是不完善的,没有Spring AOP的Spring IoC是不结实的.本文是以Spring架构的成功的实际商务系统项目为后台,阐述了反向掌握原理和面向切面的编程技术在Spring框架中的利用,同时抽取适当代码表示具体利用,并和传统开辟情势举行比较,展示了Spring framework的简单,高效,可保护等长处.
1、Spring IoC
1.1 反向掌握原理
反向掌握是Spring框架的核心.但是,反向掌握是什么意思?到底掌握的什么方面被反向了呢?2004年美国专家Martin Fowler发表了一篇论文《Inversion of Control Containers and the Dependency Injection pattern》阐述了这个问题,他总结说是得到依靠对象的方法反向了,按照这个启迪,他还为反向掌握提出了一个更贴切的名字:Dependency Injection(DI 依靠注入).
普通,利用代码需求奉告容器或框架,让它们找到自身所需求的类,然后再由利用代码成立待利用的对象实例.因此,利用代码在利用实例之前,需求成立对象实例.但是,IoC情势中,成立对象实例的任务交给IoC容器或框架(实现了IoC计划情势的框架也被称为IoC容器),使得利用代码只需求直接利用实例,这就是IoC.相对IoC 而言,“依靠注入”的确越发精确的描写了这种计划理念.所谓依靠注入,即组件之间的依靠关系由容器在运行期决意,形象的来说,即由容器动态的将某种依靠关系注入到组件之中.
1.2 IoC在Spring中的实现
任何重要的系统都需求至少两个彼此合作的类来完成业务逻辑.普通,每个对象都要自己负责得到它的合作(依靠)对象.你会发现,这样会招致代码耦合度高并且难于测试.利用IoC,对象的依靠都是在对象成立时由负责调和系统中各个对象的外部实体供应的,这样使软件组件疏松衔接成为大概.下面表示了Spring IoC 利用,步骤以下:
(1)定义Action接口,并为其定义一个execute办法,以完成目标逻辑.多年前,GoF在《Design Pattern:Elements of Reusable Object-Oriented Software》一书中提出“Programming to an Interface,not an implementation”的原则,这里首先将业务对象抽象成接口,恰是为了实施这个原则.
(2)类UpperAction实现Action接口,在此类中,定义一个String型的域message,并供应呼应的setter和getter办法,实现的execute办法以下:
public String execute (String str) {
return (getMessage () + str).toUpperCase () ;
}
(3)编写Spring配置文件(bean.xml)
<beans>
<bean id="TheAction" class="net.chen.spring.qs.UpperAction">
<property name="message">
<value>HeLLo</value>
</property>
</bean>
</beans>
以上是“Spring中反向掌握和面向切面编程的操纵[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |