Spring基于XML实现Aop

Spring基于XML实现Aop,恰卡网带你了解更多相关信息。

目录
  • 项目结构
  • 具体步骤
    • 1、创建maven 项目 导入依赖 创建好项目结构
    • 2、写一个TestDao接口 及实现类
    • 3、编写切面类
    • 测试
  • 总结

    项目结构

    具体步骤

    1、创建maven 项目 导入依赖 创建好项目结构

     
            
                org.projectlombok
                lombok
                1.18.18
            
            
                junit
                junit
                4.12
                test
            
            
                org.springframework
                spring-context
                5.3.4
            
            
                org.springframework
                spring-beans
                5.3.4
            
            
                org.springframework
                spring-core
                5.3.4
            
            
                org.springframework
                spring-expression
                5.3.4
            
            
                org.springframework
                spring-aop
                5.3.4
            
            
                org.aspectj
                aspectjweaver
                1.9.6
            
            
                org.aspectj
                aspectjrt
                1.9.6
            
        
    

    2、写一个TestDao接口 及实现类

    /**
     * @version 1.0
     * @author: crush
     * @date: 2021-03-05 10:26
     */
    public interface TestDao {
        public void sayHello();
        public void save();
        public void modify();
        public void delete();
    }
    

    /**
     * @version 1.0
     * @author: crush
     * @date: 2021-03-05 10:27
     */
    public class TestDaoImpl implements TestDao {
        public void sayHello() {
            System.out.println("正在执行的方法-->武汉加油!中国加油!");
        }
        public void save() {
            System.out.println("正在执行的方法-->保存");
        }
        public void modify() {
            System.out.println("正在执行的方法-->修改");
        }
        public void delete() {
            System.out.println("正在执行的方法-->删除");
        }
    }
    

    3、编写切面类

    /**
     * @version 1.0
     * @author: crush
     * @date: 2021-03-10 17:12
     */
    public class MyAspectXml {
        /**
         * 前置通知 使用JoinPoint 接口作为参数获得目标对象的信息
         **/
        public void before(JoinPoint jp){
            System.out.print("前置通知:模拟权限控制   ");
            System.out.println("目标对象:"+jp.getTarget()+",被增强的方法:"+jp.getSignature().getName());
        }
        public void afterReturning(JoinPoint jp){
            System.out.print("后置返回通知:"+"模拟删除临时文件"  );
            System.out.println(",被增强的方法"+jp.getSignature().getName());
        }
        public Object around(ProceedingJoinPoint pjp) throws Throwable {
            System.out.println("环绕开始:执行目标方法前,模拟开启事务");
            Object obj = pjp.proceed();
            System.out.println("环绕结束:执行目标方法后,模拟关闭事务");
            return obj;
        }
        public void except(Throwable throwable){
            System.out.println("异常通知:"+"程序执行异常"+throwable.getMessage());
        }
        public void after(){
            System.out.println("最终通知:释放资源");
        }
    }```
    ### 4、application.xml文件
    ```xml
    
    
        
        
        
        
    
        
        
            
            
            
    			           
                
                
                
                
                
            
        
    
    

    测试

        @Test
        public void Test(){
            ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
            TestDao testDao = applicationContext.getBean("testDaoImpl", TestDaoImpl.class);
            testDao.save();
            /**
             * 输出:
             * 前置通知:模拟权限控制   目标对象:com.dao.TestDaoImpl@704f1591,被增强的方法:save
             * 环绕开始:执行目标方法前,模拟开启事务
             * 正在执行的方法-->保存
             * 环绕结束:执行目标方法后,模拟关闭事务
             * 后置返回通知:模拟删除临时文件,被增强的方法save
             * 最终通知:释放资源
             */
        }
    

    总结

    本篇文章就到这里了,希望能给你带来帮助,也希望能够您能够关注趣讯吧的更多内容!

    发布于 2021-07-16 18:40:05
    分享
    海报
    168
    上一篇:详解SpringBoot如何统一后端返回格式 下一篇:Spring(Cloud,Gateway,内存溢出的解决方案)
    目录

      忘记密码?

      图形验证码