Spring AOP 注解配置

来源:互联网 发布:json过滤器 编辑:程序博客网 时间:2024/05/02 02:03

1. pom.xml 依赖导入

    <dependencies>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-core</artifactId>            <version>4.3.2.RELEASE</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-beans</artifactId>            <version>4.3.2.RELEASE</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aop</artifactId>            <version>4.3.2.RELEASE</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>4.3.2.RELEASE</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aspects</artifactId>            <version>4.3.2.RELEASE</version>        </dependency>    </dependencies>

2. 目标类

@Component("hello")public class HelloWorld {    public void say(){        System.out.println("hello world");    }}

3. 切面及通知

@org.aspectj.lang.annotation.Aspect@Component("aspect")public class Aspect {    public static final String EDP = "execution(* com.test.annatation.HelloWorld.*(..))";    @Before(EDP)    public void before(){        System.out.println("before");    }    @After(EDP)    public void after(){        System.out.println("after");    }}

4. spring配置

    <!-- 扫描包中的类 加入到spring容器中-->    <context:component-scan base-package="com.test.annatation"/>    <!--prixy-target-class : 使用cglib-->    <aop:aspectj-autoproxy proxy-target-class="true"/>    <!-- 使用注解进行依赖注入 -->    <context:annotation-config/>

5. 客户端

public class Client {    public static void main(String[] args){        ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");        HelloWorld hw = (HelloWorld) ac.getBean("hello");        hw.say();    }}

6.结果

beforehello worldafter
0 0