Spring中ioc的面向切面编程的意思
2009-11-02 15:01
197 查看
这么来说吧,在一个动作或者事件中,比如说,你现在想写字(Action),那么你需要笔,于是乎,你new了一个笔来写字,这里,你用了new笔,你这个动作和笔有了关联,没了笔,你就写不了字,也就是说,你的这个行为依赖于笔了,他们就构成了依赖关系。或者你现在想组装一台电脑(Transaction),那么你就需要显示器、主板、键鼠光驱等对象,这些对象通常是new出来的,new出来的对象和当前(this)对象就有了依赖关系。
spring中对依赖的对象采用注入,这就是常说的依赖注入吧.
再说AOP,还是以上面的例子。
比如你想在每次写字之前都检查一下笔里有没有墨水了,通常的做法是:在写字这个Action里调用判断是否有墨水的方法。这样做的不好一个方面是,写字的action和是否有墨水的方法产生了依赖,如果你有十几支不同的笔写字,每一个笔的Action里都要调用判断是否有墨水的方法;另一个方面是:就面向对象的程序设计来说,写字和判断是否有墨水的方法是同一等级的,如果你让写字这个动作来判断是否有墨水不够人性化,有违面向对象的程序设计的思想。
如果用Spring的AOP,是把写字的Action作为一个切面,在每次调用不同的笔来写字的方法之前,调用判断是否有墨水的方法。它是由<aop:config/>标签在Spring配置文件里定义的,形式如:
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.baidu.dao.write*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
这里,对com.baidu.dao下所有以write开头的方法做了一个切面,做要做的操作是以下面的pointcut-ref="allManagerMethod"来定义的。
具体到你这个配置文件,这里没有AOP,只有IOC。
spring中对依赖的对象采用注入,这就是常说的依赖注入吧.
再说AOP,还是以上面的例子。
比如你想在每次写字之前都检查一下笔里有没有墨水了,通常的做法是:在写字这个Action里调用判断是否有墨水的方法。这样做的不好一个方面是,写字的action和是否有墨水的方法产生了依赖,如果你有十几支不同的笔写字,每一个笔的Action里都要调用判断是否有墨水的方法;另一个方面是:就面向对象的程序设计来说,写字和判断是否有墨水的方法是同一等级的,如果你让写字这个动作来判断是否有墨水不够人性化,有违面向对象的程序设计的思想。
如果用Spring的AOP,是把写字的Action作为一个切面,在每次调用不同的笔来写字的方法之前,调用判断是否有墨水的方法。它是由<aop:config/>标签在Spring配置文件里定义的,形式如:
<aop:config>
<aop:pointcut id="allManagerMethod" expression="execution(* com.baidu.dao.write*(..))"/>
<aop:advisor pointcut-ref="allManagerMethod" advice-ref="txAdvice"/>
</aop:config>
这里,对com.baidu.dao下所有以write开头的方法做了一个切面,做要做的操作是以下面的pointcut-ref="allManagerMethod"来定义的。
具体到你这个配置文件,这里没有AOP,只有IOC。
相关文章推荐
- idea 实现Spring讲解(Ioc-控制反转)/Aop(面向切面的编程)
- 笔记——spring基本使用(控制反转IOC、面向切面编程AOP、声明式事务)
- AOP-Spring的面向切面编程
- 为什么说Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架?
- 关于spring.net的面向切面编程 (Aspect Oriented Programming with Spring.NET)-简介
- 反向控制和面向切面编程在Spring的应用
- Spring 之 控制反转(IoC), 依赖注入(DI)和面向切面(AOP)
- spring aop 面向切面编程 如何来做一个强大的日志记录功能
- 从头认识Spring-1.2 什么是AOP?为什么需要面向切面编程?
- spring学习笔记7--使用spring进行面向切面的(AOP)编程(1)注解方式实现
- Spring3.0 学习-AOP面向切面编程_Spring AOP的注解模式即Aspectj模式
- java+spring切面编程(aop)spring控制反转(ioc)+hibenrate对象关系映射(ORM) 学习网址
- Spring学习,依赖注入(DI)、控制反转(IoC)和面向切面(AOP)
- Java+spring切面编程(aop)spring控制反转(ioc)+hibenrate对象关系映射(ORM
- Spring AOP 面向切面编程相关注解
- 使用Spring进行面向切面(AOP)编程
- 反向控制和面向切面编程在Spring的应用[转载]
- Spring之面向切面编程AOP(三)
- SpringBoot 面向切面编程AOP
- Spring笔记——使用Spring进行面向切面(AOP)编程