zoukankan      html  css  js  c++  java
  • Spring 注解AOP 入门

     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:context="http://www.springframework.org/schema/context"
    	xmlns:aop="http://www.springframework.org/schema/aop"
    	xsi:schemaLocation="http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
    						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">
    	<aop:aspectj-autoproxy />
    	<bean id="myInterceptor" class="cn.itcast.service.MyInterceptor" />
    	<bean id="personService" class="cn.itcast.service.impl.PersonServiceBean" />
    </beans>
    

     

    业务Bean,接口就不贴了

    package cn.itcast.service.impl;

    import cn.itcast.service.PersonService;

    public class PersonServiceBean implements PersonService {

    public String getPersonName(Integer id) {
    System.out.println(
    "我是getPersonName()方法");
    return "XXX";
    }

    public void save(String name) {
    System.out.println(
    "我是save()方法");
    }

    public void update(String name, Integer id) {
    System.out.println(
    "我是update()方法");
    }

    }

    实现AOP的类 

    package cn.itcast.service;

    import org.aspectj.lang.annotation.Aspect;
    import org.aspectj.lang.annotation.Before;
    import org.aspectj.lang.annotation.Pointcut;

    @Aspect
    public class MyInterceptor {
    @Pointcut(
    "execution (* cn.itcast.service.impl.PersonServiceBean.*(..))")
    private void anyMethod() {}

    @Before(
    "anyMethod()")
    public void doAccessCheck(String userName) {
    System.out.println(
    "前置通知");
    }
    }

    测试方法

    package junit.test;

    import org.junit.Test;
    import org.springframework.context.ApplicationContext;
    import org.springframework.context.support.ClassPathXmlApplicationContext;

    import cn.itcast.service.PersonService;

    public class SpringAOPTest {
    @Test
    public void interceptorTest(){
    ApplicationContext ctx
    = new ClassPathXmlApplicationContext("beans.xml");
    PersonService personService
    = (PersonService)ctx.getBean("personService");
    personService.save(
    "xxx");
    }
    }

  • 相关阅读:
    前端性能优化:使用异步加载,延迟加载依赖
    超酷的图片标题悬浮特效
    JQuery插件:动态列和无间隙网格布局Mason.js
    如何高效地产生多个不重复的随机数?
    Endnote专题之--output style相关问题
    机器学习中的相似性度量(Similarity Measurement)
    C语言生成服从均匀分布, 瑞利分布, 莱斯分布, 高斯分布的随机数
    MathType中如何批量修改公式字体和大小
    LaTeX 算法代码排版 --latex2e范例总结
    Latex论文写作-Texsdudio 快捷键总结
  • 原文地址:https://www.cnblogs.com/live365wang/p/2129415.html
Copyright © 2011-2022 走看看