知识大全 Spring AOP之Hello World

Posted

篇首语:最聪明的处世之术是,既对世俗投以白眼,又与其同流合污。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Spring AOP之Hello World相关的知识,希望对你有一定的参考价值。

Spring AOP之Hello World  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  我们使用一个简单的例子来演示一下Spring中的AOP 这是一个log的例子 实际上log是一个对于AOP来说很不好的例子 这里我们只为说明Spring AOP的使用      首先我们来创建一个自己的interceptor   这个类必须继承 aopalliance intercept MethodInterceptor接口 Spring的AOP框架就是参照aopalliance这个标准实现的 所以我们的MyInterceptor要继承这个标准中的接口   这个接口只有一个要求实现的方法   public Object invoke(MethodInvocation methodInvocation) throws Throwable;  下面是我们的MyIntercptor     public class MyInterceptor implements MethodInterceptor   private final Log logger = LogFactory getLog(getClass());     public Object invoke(MethodInvocation methodInvocation) throws Throwable   ( Beginning method ( ): +   methodInvocation getMethod() getDeclaringClass() + +   methodInvocation getMethod() getName() + () );  long startTime = System currentTimeMillis();  try  Object result = methodInvocation proceed();  return result;  finally  ( Ending method ( ): +   methodInvocation getMethod() getDeclaringClass() + +  methodInvocation getMethod() getName() + () );  ( Method invocation time ( ): +   (System currentTimeMillis() startTime) + ms );          对于上面的代码需要说明的是下面两行代码   Object result = methodInvocation proceed();  return result;  整个程序的流程是这样的    先是执行在Object result = methodInvocation proceed();前面的代码    接着执行Object result = methodInvocation proceed(); 它把执行控制权交给了interceptor stack(拦截器栈)内的下一个interceptor 如果没有了就交给真正的业务方法    然后执行return result;之前的代码    最后执行return result; 它把控制权交回它之上的interceptor 如果没有了就退出interceptor stack      写出我们的业务对象及其接口  为了方便我们的业务接口只有一个hello方法     public interface BusinessInterface   public void hello();       业务对象的代码如下     public class BusinessInterfaceImpl implements BusinessInterface  public void hello()   System out println( hello Spring AOP );          接下来 我们来看看如何使用我们的写的interceptor  我们把业务对象作为AOP的target   <bean id= businessTarget class= rst spring testaop BusinessInterfaceImpl />  接着在bean定义中声明interceptor   <bean id= myInterceptor class= rst spring testaop MyInterceptor />  最后 我们来声明真正的业务对象 通过使用它的接口以及Spring的ProxyFactoryBean     <bean id= businessBean     class= springframework aop framework ProxyFactoryBean >  <property name= proxyInterfaces >  <value> rst spring testaop BusinessInterface</value>  </property>  <property name= interceptorNames >  <list>  <value>myInterceptor</value>  <value>businessTarget</value>  </list>  </property>  </bean>     这里需要说明两点   proxyInterfaces 就是我们的业务对象的实际接口   interceptorNames 定义了所有interceptors的执行顺序 其中业务对象的target作为list的最后一个 记着一定要把业务对象的target放到list中 否则你的业务对象就不会工作      最后 写我们的测试类  ClassPathResource resource =   new ClassPathResource( /rst/spring/testaop/aop_bean xml );  XmlBeanFactory beanFactory = new XmlBeanFactory(resource);  BusinessInterface businessBean =   (BusinessInterface) beanFactory getBean( businessBean );  businessBean hello();     一切正常就可以在log上看到相应的信息了   以下是附件源代码的执行效果    : : INFO Beginning method ( ): interface rst spring testaop BusinessInterface hello()   : : INFO Beginning method ( ): interface rst spring testaop BusinessInterface hello()  hello Spring AOP    : : INFO Ending method ( ): interface rst spring testaop BusinessInterface hello()   : : INFO Ending method ( ): interface rst spring testaop BusinessInterface hello()   : : INFO Method invocation time ( ): ms   源代码需要spring jar aopallience jar mons logging jar cha138/Article/program/Java/ky/201311/28872

相关参考

知识大全 VB.Net编程入门之Hello World(2)

VB.Net编程入门之HelloWorld(2)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 VB.Net编程入门之Hello World(4)

VB.Net编程入门之HelloWorld(4)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 VB.Net编程入门之Hello World(3)

VB.Net编程入门之HelloWorld(3)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  

知识大全 Hello World Ant

Java技巧:HelloWorldAnt  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Anot

知识大全 Spring AOP 详解

SpringAOP详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  此前对于AOP的使用仅限于

知识大全 浅析Spring.net中的Aop使用

浅析Spring.net中的Aop使用  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! &

知识大全 Spring事务处理及其AOP框架的内幕

Spring事务处理及其AOP框架的内幕  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ***注

知识大全 开源技术分析:AOP和Spring事务处理

开源技术分析:AOP和Spring事务处理  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一为什

知识大全 Spring3.0中的AOP配置方法

Spring3.0中的AOP配置方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第一种配置方

知识大全 spring aop中单独代理和自动代理的设置

  spring的aop机制提供两类方式实现类代理一种是单个代理一种是自动代理  单个代理通过ProxyFactoryBean来实现自动代理通过BeanNameAutoProxyCreator或者De