spring4-3-AOP-AspectJ注解-01-简单使用

1.引入类库

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>4.1.6.RELEASE</version>
        </dependency>
        <!-- aop 包 -->
        <dependency>
            <groupId>org.aspectj</groupId>
            <artifactId>aspectjweaver</artifactId>
            <version>1.8.6</version>
        </dependency>

 spring aop 需要额外的jar包:

2.创建配置文件,加入aop,bean,context 命名空间:

 3.创建一个接口,及其实现类:

接口:ArithmeticCaculator

package com.l1.spring.aop.impl;

public interface ArithmeticCaculator {
    int add(int i, int j);
    int sub(int i, int j);
    int mul(int i, int j);
    int div(int i, int j);
}
View Code

 

实现类:ArithmeticCaculatorImp

package com.l1.spring.aop.impl;

import org.springframework.stereotype.Component;

@Component
public class ArithmeticCaculatorImp implements ArithmeticCaculator {

    @Override
    public int add(int i, int j) {
        int result = i + j;
        return result;
    }

    @Override
    public int sub(int i, int j) {
        int result = i - j;
        return result;
    }

    @Override
    public int mul(int i, int j) {
        int result = i * j;
        return result;
    }

    @Override
    public int div(int i, int j) {
        int result = i / j;
        return result;
    }

}
View Code

 

4.创建一个日志的切面对象-LoggingAspect

首先声明整个对象是一个切面:

4.1 然后声明前置通知方法:

如果想要通知这个对象中的所有public 方法,并且具有两个int参数

如果想要通知这个对象的所有public方法的所有形式的参数:

如果想要所有类型方法,返回值为所有类型:

 * 代表匹配任意修饰符及任意返回值, 参数列表中的 .. 匹配任意数量的参数

5.配置文件中配置自动装配:

6. 测试

package com.l1.spring.aop.impl;

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

public class App {
    @SuppressWarnings("resource")
    public static void main(String[] args) {
        //1.创建Spring IOC容器
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
        //2.生产bean 实例
        ArithmeticCaculator caculator = ctx.getBean("arithmeticCaculatorImp",ArithmeticCaculator.class);
        //3.使用bean
        int result = caculator.add(3, 4);
        System.out.println(result);
    }
}

 

posted @ 2015-06-29 17:57  勿妄  阅读(1020)  评论(0编辑  收藏  举报