首页 > 代码库 > ASPCTJ

ASPCTJ

ublic interface ISomeService {
    public void doSome();

    public String dade();
}
public class SomeService implements ISomeService {
    //核心业务
    public void doSome(){
        System.out.println("我们都要找到Java开发工作,薪资6,7,8,9,10K");
    }

    public String dade() {
        System.out.println("==================");
        return "add";
    }

}
import org.aspectj.lang.ProceedingJoinPoint;
import org.aspectj.lang.annotation.*;

/**
 * Created by QiuShao on 2017/7/31.
 */
@Aspect
public class MyAspect {
    /*前置增强*/
    @Before(value = "http://www.mamicode.com/execution(* *..spring17.*.*(..))")
    public void before(){
        System.out.println("前置增强");
    }

    /*后置增强*/
    @AfterReturning(value = "http://www.mamicode.com/execution(* *..spring17.*.*(..))")
    public void after(){
        System.out.println("后置增强");
    }
    /*环绕增强*/
    @Around(value = "http://www.mamicode.com/execution(* *..spring17.*.*(..))")
    public Object around(ProceedingJoinPoint proceed) throws Throwable {
        System.out.println("环绕前");
        Object result=proceed.proceed();
        System.out.println("环绕后");
        if(result!=null){
           return result;
            /*String str=(String)result;
            return str.toUpperCase();*/
        }else {
            return null;
        }
    }
}

配置文件

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:aop="http://www.springframework.org/schema/aop"
       xmlns:context="http://www.springframework.org/schema/context"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       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
        http://www.springframework.org/schema/context  http://www.springframework.org/schema/context/spring-context.xsd
">
    <!--01.目标对象-->
    <bean id="someService" class="cn.bdqn.spring17.SomeService"></bean>

    <!--02.增强 通知-->
    <bean class="cn.bdqn.spring17.MyAspect"></bean>

    <aop:aspectj-autoproxy/>

</beans>

 

单侧

 // aspectj 注解
    @Test
    public void test011(){
        ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContextspring15.xml");
        ISomeService service = (ISomeService) ctx.getBean("someService");
        service.doSome();
        String aa= service.dade();
        System.out.println(aa);


    }

ASPCTJ