java spring AOP例子

2018-02-02  本文已影响0人  吃猫的鱼0

包结构

|---lib
    |---com.springsource.org.aopalliance-1.0.0.jar
    |---com.springsource.org.apache.commons.logging-1.1.1.jar
    |---com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
    |---log4j-1.2.16.jar
    |---spring-aop-3.2.0.RELEASE.jar
    |---spring-aspects-3.2.0.RELEASE.jar
    |---spring-beans-3.2.0.RELEASE.jar
    |---spring-context-3.2.0.RELEASE.jar
    |---spring-core-3.2.0.RELEASE.jar
    |---spring-expression-3.2.0.RELEASE.jar
|---src
    |---\com\zy\spring\vo
        |---MyAspect.java
        |---User.java
    |---applicationContext.xml

代码

applicationContext.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/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
                        http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
    
        <bean id="user" name="user" class="com.zy.spring.vo.User">
    <property name="password" value="张三"></property>
    <property name="name" value="张三"></property>
    </bean>
    
    
    <bean id="myaspect" class="com.zy.spring.vo.MyAspect"></bean>
    
    <!-- 自动生成代理 -->
    <aop:aspectj-autoproxy></aop:aspectj-autoproxy>
</beans>

MyAspect.java

package com.zy.spring.vo;

import org.aspectj.lang.annotation.After;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;

@Aspect
public class MyAspect {
    @Before("execution(public * com.zy.spring.vo.User.work())")
    public void text(){
        System.out.println("起床");
    }
    @After("execution(public * com.zy.spring.vo.User.work())")
    public void text1(){
        System.out.println("回家");
    }
    @AfterReturning("execution(public * com.zy.spring.vo.User.work())")
    public void text2(){
        System.out.println("返回通知");
    }
}

User.java

package com.zy.spring.vo;

public class User {
    private String name;
    private String password;
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String  work(){
        System.out.println("上班");
        return "work";
    }
}
上一篇 下一篇

猜你喜欢

热点阅读