您的位置:首页 > 编程语言 > Java开发

spring 注解方式实现aop

2017-04-01 11:05 465 查看
spring xml配制

<context:component-scan base-package="com.meizu.spring.controller,com.meizu.spring.service,com.meizu.spring.annotation_aop" >
<context:include-filter type="annotation" expression="org.aspectj.lang.annotation.Aspect" />
</context:component-scan>
<!-- Configures the @Controller programming model -->
<!-- annotation-driven 扫描指定包中类上的注解 -->
<mvc:annotation-driven />
<!-- 通过cblib去生成代理类 -->
<aop:aspectj-autoproxy proxy-target-class="true"/>


注解类

@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD})
public @interface InfoAop {
String name() default "";
}


切面类

@Aspect
public class InfoAopIml {

@Before("@annotation(infoAop)")
public void before(InfoAop infoAop) throws Throwable {
System.out.print("before");
}

@Around("@annotation(infoAop)")
public void around(ProceedingJoinPoint proceedingJoinPoint, InfoAop infoAop) throws Throwable {
System.out.print("around before");
proceedingJoinPoint.proceed();
System.out.print("around after");
}

@After("@annotation(infoAop)")
public void after(InfoAop infoAop) throws Throwable {
System.out.print("after");
}
}


切面使用

@Service
public class ServiceInfo {

@InfoAop()
public void info(){
System.out.print("info function");
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  spring aop 注解