Spring-AOP实例

来源:互联网 发布:剑侠情缘捏脸数据 编辑:程序博客网 时间:2024/06/10 17:12


                 需求类:

                               PersonDao类:接口

                               PersonDaoImpl类:实现类

                               Transaction类:事务类


                               TransactionTest类:测试类

                               applicationContext.xml:配置文件


 PersonDao:

package com.tgb.spring.aop.xml.transaction;public interface PersonDao {  public void savePerson();}


PersonDaoImpl:

package com.tgb.spring.aop.xml.transaction;public class PersonDaoImpl implements PersonDao {public void savePerson() {System.out.println("执行: save person 方法!");}}


Transaction:

package com.tgb.spring.aop.xml.transaction;import java.lang.reflect.Method;import org.junit.Test;/** *  * @author F-mdh * *///切面public class Transaction {   public void  beginTransaction(){   System.out.println("执行:开启事务!");      };   public void  commitTransaction(){   System.out.println("执行:提交事务!");      };   }


TransactionTest:

package com.tgb.spring.aop.xml.transaction;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class TransactionTest {@Testpublic void testTransaction(){                                   //applicationContext.xmlApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");PersonDao personDao=(PersonDao)context.getBean("personDao");personDao.savePerson();};}


applicationContext.xml:

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"   xmlns:aop="http://www.springframework.org/schema/aop"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:schemaLocation="http://www.springframework.org/schema/beans            http://www.springframework.org/schema/beans/spring-beans-2.5.xsd           http://www.springframework.org/schema/aop            http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">  <bean id="personDao" class="com.tgb.spring.aop.xml.transaction.PersonDaoImpl"></bean>  <bean id="transaction" class="com.tgb.spring.aop.xml.transaction.Transaction"></bean>    <aop:config>  <!--   切入点表达式  确定目标类   -->  <aop:pointcut   expression="execution(* com.tgb.spring.aop.xml.transaction.PersonDaoImpl.*(..))"   id="perform"/>  <!--   ref指向的对象就是切面   -->      <aop:aspect ref="transaction">      <aop:before method="beginTransaction" pointcut-ref="perform"/>      <aop:after-returning method="commitTransaction" pointcut-ref="perform"/>      </aop:aspect>  </aop:config></beans>


原创粉丝点击