AOP到底是什么,能举例说明一下吗? 好象是什么面向切面编程 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 楼主自己google ,要么百度吧。这东西网上一大堆 面向切面编程可以给面向对象编程提供强大的辅助功能,开发者能够将系统中分散的模块通过切入点机制随时引入切面,增添诸如认证、声明等服务面向切面编程的原理和实现。切面(Aspect)是一个抽象出来的独立的功能模块,连接点(Join Point)是一个可以引入切面的接口,通知(Advice)是 包括Before、After、Around和Throw四种类型的处理逻辑。面向切面编程就是将底层大量而又分散的功能相似的模块集中起来,这些集中起来的功能模块就成为切面,在需要使用这些模块的地方设置连接点,通过配置文件以声明的方式把模块指定到所需的连接点,根据不同的通知在程序的不同位置注入代码。简单的实现示例如下:public class A {//含有显示字母“A”的行为dopublic 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可以减少代码耦合,提高系统的灵活性扩张性,还使得单元测试变得更为容易。写读书报告时正好包括这个。。 大哥大嫂们介绍下Spring AOP呐,楼主这贴下面的相关问题中就有一篇回答甚多的帖子。 普通类获取spring中的bean..... 输入一个整数,计算出比该整数大的最小的质数。 请问如何用gc()指定要释放的内存? 多线程的问题 希望高手能帮我解决问题 大家帮个忙啊,用JAVA怎么实现传文件呀,,拜托了!!!! 输出格式化的问题,已经在论坛上搜索过,没有答案,所以来这里再问问 关于RMI的游戏DB服务器的优点与缺点! 简单问题——int和String的相互转换 小弟刚学java,请教个问题? java 的数据库操作 stringbuffer:api文档中说线程安全的可变字符序列。一个类似于 String 的字符串缓冲区,但不能修改。 N级分类的XML 怎么解析
切面(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可以减少代码耦合,提高系统的灵活性扩张性,还使得单元测试变得更为容易。
写读书报告时正好包括这个。。
呐,楼主这贴下面的相关问题中就有一篇回答甚多的帖子。