AOP到底是什么,能举例说明一下吗?

孤尽JavaSea 2010-02-17 07:12:58
好象是什么面向切面编程
...全文
455 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
Agile牧 2010-02-22
  • 打赏
  • 举报
回复
面向切面编程
很重要的编程思想
hovei 2010-02-22
  • 打赏
  • 举报
回复
面向切面编程,可配置拦截器。。
LLL710451618 2010-02-21
  • 打赏
  • 举报
回复
路过而已,。。。。。。。
shchengang 2010-02-21
  • 打赏
  • 举报
回复
注意是切面,不是刀削面
dinghun8leech 2010-02-21
  • 打赏
  • 举报
回复
大哥大嫂们介绍下Spring AOP
呐,楼主这贴下面的相关问题中就有一篇回答甚多的帖子。
yueyan945 2010-02-21
  • 打赏
  • 举报
回复
好比上下班都要刷卡一样
lxl0303 2010-02-21
  • 打赏
  • 举报
回复
吃过汉堡吧?原理差不多
solosky772 2010-02-19
  • 打赏
  • 举报
回复
这个我也理解的不是很清,好像就是动态代理和拦截器那种,在进行某种操作之前拦截下来,做了工作,比如记录,依赖注入啊等,然后才交给具体的对象去完成操作。
个人理解,各位别拍砖哈。
SambaGao 2010-02-18
  • 打赏
  • 举报
回复
不错,是面象切面编程。是事物的一个通知,可以这样理解。当两个东西相交时,触发一个事件。。
农城浪子 2010-02-17
  • 打赏
  • 举报
回复
就是将事物管理,异常处理等模块化,把这些横切关注点作为切面处理
bbb332 2010-02-17
  • 打赏
  • 举报
回复
面向切面编程................
不善^ 2010-02-17
  • 打赏
  • 举报
回复
面向切面
在切面之前 做某个行为
zhangsige 2010-02-17
  • 打赏
  • 举报
回复
面向切面编程可以给面向对象编程提供强大的辅助功能,开发者能够将系统中分散的模块通过切入点机制随时引入切面,增添诸如认证、声明等服务

面向切面编程的原理和实现。
切面(Aspect)是一个抽象出来的独立的功能模块,连接点(Join Point)是一个可以引入切面的接口,通知(Advice)是 包括Before、After、Around和Throw四种类型的处理逻辑。面向切面编程就是将底层大量而又分散的功能相似的模块集中起来,这些集中起来的功能模块就成为切面,在需要使用这些模块的地方设置连接点,通过配置文件以声明的方式把模块指定到所需的连接点,根据不同的通知在程序的不同位置注入代码。

简单的实现示例如下:
public class A {//含有显示字母“A”的行为do
public void do(){
System.out.println( “ A”);
}
}

import java.lang.reflect.Method;//类Before为切面
import org.springframework.aop.MethodBeforeAdvice;
public class Before implements MethodBeforeAdvice{
public void before(Method arg0,Object[] arg1,Object[] arg2)throws Throwable{
System.out.println(“ Bingo!”);
}
}

<?xml version="1.0" encoding="UTF-8"?>//beans.xml 配置
<beans xmlns信息略">
<bean id=”aTarget” class=”A”>//声明目标对象
</bean>
<bean id=”beforeAdvice” class=”Before”>//声明通知
</bean>
<bean id=”a” class=” org.springframework.aop.framework.ProxyFactoryBean”>
<property name=”needBefore”>//创建带有通知的对象
<list>
<value>beforAdvice<value>//需要添加通知的列表
<list>
</property>
<property name=”target”>
<ref bean=”aTarget”/>//所要应用的对象
</property>
</bean>
</beans>

import org.springframework.beans.factory.BeanFactory;//运行AOP程序
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.CladdPathResource;
public class DoMain{
public static void main(String[] args){
ClassPathResource resource=new ClassPathResource(“beans.xml”);//配置文件载入内存
BeanFactory factory=new XmlBeanFactory(resource);//Bean Factory读取配置信息
A a=(A) factory.getBean(“a”);//对象实例化
a.do();//调用类A下的行为
}
}

运行上述main程序结果显示:
Bingo!
A
这说明在调用类A的行为do前程序已经自动把类Before以前置通知方式调用。以同样的方式AOP可以在对象上以After、Around、Throw方式附加切面,这很好的解决诸如身份验证、拦截通知等问题。拥有AOP技术的Spring可以减少代码耦合,提高系统的灵活性扩张性,还使得单元测试变得更为容易。


写读书报告时正好包括这个。。
xingda1989 2010-02-17
  • 打赏
  • 举报
回复
楼主自己google ,要么百度吧。这东西网上一大堆

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧