Spring,Java的春天,带来了简单、送耦合、可测试这些新生事物,春风吹过,Java大地一片欣欣向荣。Spring的描述是这样的:一个轻量轻级的IOC和AOP容器框架。轻量级体现在它可以打成一个1MB多一点的压缩包,够轻了吧,而且它对内存占用不大。这里主要谈谈它的IOC和AOP。
IOC即反向控制,Spring就是利用IOC来实现松耦合的。通过与JNDI的对比可以很清楚的了解IOC──我们给JNDI指一个地方告诉它那里有我的东西,JNDI就会听话的去把它给我们找出来;我们什么都没说,什么都没做,IOC却跑过来告诉我们,它在某个地方找到了一个属于我们的东西。也就是说 IOC是JNDI的反转,对象不是从容器中查找它的一来类,而是容器在实例化对象的时候主动将它的依赖类注入。
比如我们在Controller那里返回给JPS视图一个列表(具体代码在这里
http://wuxun1997.iteye.com/blog/453085的第三部分:Controller类),那么我们必然要对数据进行一个查询操作,那么必然要跟数据库扯上关系,但你在Controller并没有看到它实现了Dao接口或实例化了dataSource,仅仅是set进一个Dao属性完事,因为我们在配置文件中已经让他们交朋友了:
首先是Controller和Dao:
<bean id="guideMenuController" class="com.abestek.web.guidemenu.GuideMenuController">
<property name="guideMenuDao" ref="guideMenuDao"/>
</bean>
然后是Dao和dataSource:
<bean id="guideMenuDao" class="com.abestek.dao.GuideMenuDaoImpl">
<property name="dataSource" ref="dataSource"/>
</bean>
AOP即面向切面,它强大而简单,把业务逻辑从系统服务中分离了出来,避免了业务逻辑与系统服务之间的交叉耦合,同时减少重复了代码。AOP就像一把大刀,可以对你想下手的业务模块一刀切下去,而业务模块自己却还不知道自己已经被砍了,轻易的实现无痛手术。AOP的具体实现是在方法调用时织入,而且我们可以选择是在方法调用的前、后、环绕还是异常抛出后,所以可以根据需要来进行过滤。
假如我们要对web系统声明式事务进行支持,我们不会去麻烦每一个业务模块,让他们把手头的事停下来处理一下事务,我们悄悄的在他们身上找到切入点,然后不知不觉的把事务织入到他们身上,再悄悄的离开,他们继续着他们的工作,而我们的工作也已经完成。声明式事务也是在配置文件里面,简单的告诉AOP切入点和通知就完事了。在这里
<aop:config proxy-target-class="true">
<aop:advisor pointcut="execution(* *..ProductManager.*(..))" advice-ref="txAdvice"/>
</aop:config>
<tx:advice id="txAdvice">
<tx:attributes>
<tx:method name="save*"/>
</tx:attributes>
</tx:advice>
是对类使用AOP(Spring默认是接口),它声明了一个save事务。
Spring既是一个AOP框架,又是一个IOC容器。在Spring,你的Bean是通过接口来与Bean的关联类通讯的,其它事情由容器负责解决依赖关系,所以你所要做的就是放手去干,用接口来实现类之间的通信,有IOC在后面撑腰,它可以让你随意替换对象,仅仅动一动JavaBean的属性和配置文件就可以了。而业务逻辑也只要一心做好自己的工作就可以了,不用为别的事操心,因为AOP会帮忙搞定那些麻烦事。
分享到:
相关推荐
《Spring框架开发参考中文手册》是一本专门为Java开发者设计的指南,旨在帮助他们深入理解和熟练运用Spring框架进行软件开发。Spring作为Java企业级应用开发的主流框架,以其强大的功能、灵活的设计和广泛的社区支持...
Spring框架是中国Java开发领域中最广泛使用的轻量级框架之一,以其IoC(Inversion of Control,控制反转)和AOP(Aspect Oriented Programming,面向切面编程)为核心特性,极大地简化了企业级应用的开发。...
提供Spring框架的基本功能,其主要组件是BeanFactory,是工厂模式的实现。 Spring 上下文。向Spring 框架提供上下文信息,包括企业服务,如 JNDI、EJB、电子邮件、国际化、校验和调度等。 Spring AOP。通过配置管理...
即Spring框架的概述 1。 介绍Spring框架 1.1。 依赖注入和控制反转 1.2。 模块 1.2.1。 核心容器 1.2.2。 数据访问/集成 1.2.3。 web 1.2.4。 AOP和仪表 1 2 5。 测试 1.3。 使用场景 1.3.1。 依赖关系管理和命名...
Spring框架基础 Spring框架起源于Rod Johnson在2002年出版的《Expert One-on-One J2EE Design and Development》中的代码。这个框架融合了Java企业版(JEE)开发的最佳实践,与一流的第三方框架集成,并提供了简单...
我们从一个简单的容器开始,一步步的重构,最后实现一个基本的Spring框架的雏形,为了帮助我们更加深入的理解Spring的IoC的原理和源码。 详细内容见博文: 【SSH进阶之路】一步步重构容器实现Spring框架——从一个...
《Java Spring框架学习指南》是一份详尽的教育资源,旨在帮助开发者从零基础开始逐步掌握Spring框架,并深入理解其核心概念和技术。这份PDF文档全面覆盖了Spring框架的基础知识,包括IoC(Inversion of Control)...
Spring框架是中国IT开发领域中最广泛使用的Java应用框架之一,它为构建高质量的、松耦合的、可测试的Java应用程序提供了全面的解决方案。这个“spring框架帮助文档”旨在为开发者提供详尽的指导,帮助他们克服在使用...
Spring框架是中国Java开发领域中的一个核心支柱,它以其强大的功能和灵活性深受开发者喜爱。这个压缩包包含的是Spring框架的核心JAR文件,对于任何Java开发者,尤其是那些致力于企业级应用开发的人来说,这些都是必...
**Spring框架基础** Spring框架是Java企业级应用开发中的核心框架,它为应用程序提供了一个全面的基础设施,使得开发者可以专注于业务逻辑的实现,而无需关注底层的繁琐细节。Spring框架以其模块化的结构、依赖注入...
Spring 框架的设计原理及设计模式分析 Spring 框架的设计原理是基于面向 Bean 的编程(BOP,Bean Oriented Programming),它的核心组件只有三个:Core、Context 和 Beans。这些组件之间的协同工作是 Spring 框架的...
SSH和Spring框架是Java开发中的两个重要工具,它们在企业级应用开发中占据了核心地位。SSH,是由Struts2、Spring和Hibernate三个框架组成的集成解决方案,而Spring则是一个全面的后端开发框架,包含了多种功能模块。...
Spring框架是Java开发领域中最广泛使用的轻量级框架之一,以其强大的依赖注入(Dependency Injection,简称DI)和面向切面编程(Aspect-Oriented Programming,简称AOP)能力而著称。本文将深入探讨Spring框架的核心...
Spring框架是Java开发中广泛应用的轻量级框架,它以其依赖注入(Dependency Injection,DI)和面向切面编程(Aspect-Oriented Programming,AOP)为核心特性,极大地简化了企业级应用的开发工作。这份"Spring框架...
Java Spring框架是当今最为流行的Java企业级应用开发框架,它以高度的解耦、简化开发、对AOP编程的支持以及方便的测试等特性,深受开发者喜爱。在本次的Java Spring框架学习笔记中,将对Spring框架的核心概念进行...
Spring框架是由Rod Johnson创建的开源框架,旨在解决企业应用开发的复杂性。Spring框架的出现极大地简化了企业级应用的开发,并且不仅仅局限于服务器端的开发。Spring的核心概念之一是使用简单的JavaBean来实现之前...
Spring框架是中国著名的Java企业级应用开发框架,由Rod Johnson在其著作《Expert One-on-One J2EE Design and Development》中首次提出。Spring以其轻量级、模块化和强大的依赖注入特性而闻名,它极大地简化了Java...