spring-aop入门之myAop

来源:互联网 发布:知其非所以沽名钓誉矣 编辑:程序博客网 时间:2024/05/22 14:53

bean.xml

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xmlns:p="http://www.springframework.org/schema/p"    xmlns:context="http://www.springframework.org/schema/context"    xsi:schemaLocation="        http://www.springframework.org/schema/beans        http://www.springframework.org/schema/beans/spring-beans.xsd        http://www.springframework.org/schema/context        http://www.springframework.org/schema/context/spring-context.xsd"><!-- 开启注解扫描 --><context:component-scan base-package="cn.itcast.d_myaop"></context:component-scan></beans>      

Aop.java

package cn.itcast.d_myaop;import org.springframework.stereotype.Component;@Component  // 加入IOC容器public class Aop {// 重复执行的代码public void begin(){System.out.println("开始事务/异常");}public void commite(){System.out.println("提交事务/关闭");}}

IUserDao.java

package cn.itcast.d_myaop;// 接口public interface IUserDao {void save();}

UserDao.java

package cn.itcast.d_myaop;import javax.annotation.Resource;import org.springframework.stereotype.Component;/** * 目标对象 * @author Jie.Yuan * */@Component   // 加入容器public class UserDao implements IUserDao{// 重复执行代码形成的一个类@Resourceprivate Aop aop;@Overridepublic void save() {   aop.begin();   System.out.println("-----核心业务:保存!!!------");   aop.commite();}}

App.java

package cn.itcast.d_myaop;import org.junit.Test;import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;public class App {ApplicationContext ac = new ClassPathXmlApplicationContext("cn/itcast/d_myaop/bean.xml");@Testpublic void testApp() {IUserDao userDao = (IUserDao) ac.getBean("userDao");userDao.save();}}

输出:

开始事务/异常
-----核心业务:保存!!!------
提交事务/关闭


0 0
原创粉丝点击