zoukankan      html  css  js  c++  java
  • spring框架之AspectJ的XML方式完成AOP的开发

    1. 步骤一:创建JavaWEB项目,引入具体的开发的jar包
        * 先引入Spring框架开发的基本开发包
        * 再引入Spring框架的AOP的开发包
            * spring的传统AOP的开发的包
                * spring-aop-4.2.4.RELEASE.jar
                * com.springsource.org.aopalliance-1.0.0.jar
    
            * aspectJ的开发包
                * com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
                * spring-aspects-4.2.4.RELEASE.jar
    
    2. 步骤二:创建Spring的配置文件,引入具体的AOP的schema约束
      * spring-framework-3.2.0.RELEASEdocsspring-framework-referencehtmlxsd-config.html,在这个网页中找到40.2.7 the aop schema,然后将下面标签中的内容复制粘贴单applicationContext.xml。 <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xsi:schemaLocation=" http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd"> 3. 步骤三:创建包结构,编写具体的接口和实现类 * com.huida.demo2 * CustomerDao -- 接口
    package com.huida.demo3;
    
    public interface CustomerDao {
    
        public void save();
        public void update();
    }
            * CustomerDaoImpl       -- 实现类
    package com.huida.demo3;
    
    public class CustomerDaoImpl implements CustomerDao{
    
        @Override
        public void save() {
            System.out.println("添加客户");    
        }
        @Override
        public void update() {
            System.out.println("更新客户");    
        }
    }
    4. 步骤四:将目标类配置到Spring中
        <bean id="customerDao" class="com.huida.demo3.CustomerDaoImpl"/>
    
    5. 步骤五:定义切面类
        public class MyAspectXml {
            // 定义通知
            public void log(){
                System.out.println("记录日志...");
            }
        }
    
    6. 步骤六:在配置文件中定义切面类
        <bean id="myAspectXml" class="com.huida.demo3.MyAspectXml"/>
    
    7. 步骤七:在配置文件中完成aop的配置
        <aop:config>
            <!-- 引入切面类 -->
            <aop:aspect ref="myAspectXml">
                <!-- 定义通知类型:切面类的方法和切入点的表达式 -->
                <aop:before method="log" pointcut="execution(public * com.huida.demo3.CustomerDaoImpl.save(..))"/>
            </aop:aspect>
        </aop:config>
    
    8. 完成测试
        @RunWith(SpringJUnit4ClassRunner.class)
        @ContextConfiguration("classpath:applicationContext.xml")
        public class Demo3 {
            @Resource(name="customerDao")
            private CustomerDao customerDao;
            @Test
            public void run1(){
                customerDao.save();
                customerDao.update();
                customerDao.delete();
            }
        }
    9.单元测试run1(),执行结果为:
     
  • 相关阅读:
    带返回值的多线程
    ORA-12516 "TNS监听程序找不到符合协议堆栈要求的可用处理程序" 解决方案
    Java后端WebSocket的Tomcat实现
    Jackson将对象转换为json字符串时,设置默认的时间格式
    java构造器和构建器
    java静态工厂
    离散-理解只有 才
    数据结构之链式表
    数据结构之顺序线性表
    期末作业验收
  • 原文地址:https://www.cnblogs.com/wyhluckdog/p/10131626.html
Copyright © 2011-2022 走看看