zoukankan      html  css  js  c++  java
  • spring AOP 简单入门案例

    TestServiceinter.java

    1 package com.frank.aop;
    2 
    3 public interface TestServiceinter {
    4     public void SayHello();
    5 
    6 }

    TestServiceImp.java

     1 package com.frank.aop;
     2 
     3 public class TestServiceImp implements TestServiceinter {
     4 
     5     private String name;
     6 
     7     public String getName() {
     8         return name;
     9     }
    10 
    11     public void setName(String name) {
    12         this.name = name;
    13     }
    14 
    15     @Override
    16     public void SayHello() {
    17         // TODO Auto-generated method stub
    18         System.out.println(name+"hello");
    19 
    20     }
    21 
    22 }

    MyMethodBeforeAdvice.java

     1 package com.frank.aop;
     2 
     3 import java.lang.reflect.Method;
     4 
     5 import org.springframework.aop.MethodBeforeAdvice;
     6 
     7 public class MyMethodBeforeAdvice implements MethodBeforeAdvice {
     8 
     9     @Override
    10     public void before(Method method, Object[] args, Object target)
    11             throws Throwable {
    12         // TODO Auto-generated method stub
    13         System.out.println("记录日志中。。。。"+method.getName());
    14 
    15     }
    16 
    17 }

    App1.java

     1 package com.frank.aop;
     2 
     3 import org.springframework.context.ApplicationContext;
     4 import org.springframework.context.support.ClassPathXmlApplicationContext;
     5 
     6 public class App1 {
     7 
     8     public static void main(String[] args) {
     9         // TODO Auto-generated method stub
    10         ApplicationContext ac=new ClassPathXmlApplicationContext("com/frank/aop/beans.xml");
    11         TestServiceinter Ts=(TestServiceinter) ac.getBean("proxyFactoryBean");
    12         Ts.SayHello();
    13 
    14     }
    15 
    16 }

    beans.xml

     

     1 <?xml version="1.0" encoding="UTF-8"?>
     2 <beans xmlns="http://www.springframework.org/schema/beans"
     3     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:p="http://www.springframework.org/schema/p"
     4     xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.1.xsd">
     5     <!-- 配置前置通知 -->
     6     <bean id="myMethodBeforeAdvice" class="com.frank.aop.MyMethodBeforeAdvice" />
     7     <!-- 配置被代理对象 -->
     8     <bean id="testServiceImp" class="com.frank.aop.TestServiceImp">
     9         <property name="name" value="frank"></property>
    10     </bean>
    11     <!-- 配置代理对象 -->
    12     <bean id="proxyFactoryBean" class="org.springframework.aop.framework.ProxyFactoryBean">
    13         <!--代理接口集 -->
    14         <property name="proxyInterfaces">
    15             <list>
    16                 <value>com.frank.aop.TestServiceinter</value>
    17             </list>
    18         </property>
    19         <!-- 把通知织入到代理对象 -->
    20         <property name="interceptorNames">
    21             <value>myMethodBeforeAdvice</value>
    22         </property>
    23         <!-- 配置被代理对象 -->
    24         <property name="target" ref="testServiceImp">
    25         </property>
    26     </bean>
    27 
    28 
    29 </beans>

                                              

  • 相关阅读:
    细菌 状态压缩
    素数
    骑士问题(knight)
    魔法石的诱惑
    平面上的最接近点对
    救援行动(save)
    优先队列
    leetcode 92. 反转链表 II
    leetcode 91. 解码方法
    leetcode 39. 组合总和
  • 原文地址:https://www.cnblogs.com/frankM/p/4399844.html
Copyright © 2011-2022 走看看