spring @AspectJ @annotation

来源:互联网 发布:万国数据事件 编辑:程序博客网 时间:2024/06/14 15:27
<dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-context-support</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.springframework</groupId>            <artifactId>spring-aop</artifactId>            <version>${spring.version}</version>        </dependency>        <dependency>            <groupId>org.aspectj</groupId>            <artifactId>aspectjrt</artifactId>            <version>1.8.7</version>        </dependency>        <dependency>            <groupId>org.aspectj</groupId>            <artifactId>aspectjweaver</artifactId>            <version>1.8.7</version>        </dependency>``

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTrans {

}

@Component
public class Hello implements IHello {

@MyTrans@Overridepublic void sayHello(String name) {    System.out.println("hello world-" + name);}

}

@Aspect
@Component
public class TransAspect {
@Around(“@annotation(com.fd.annotation.MyTrans)”)
public Object around(ProceedingJoinPoint pjp) throws Throwable {
System.out.println(“前置”);
Object o = pjp.proceed();
System.out.println(“后置”);
return o;
}
}

<aop:aspectj-autoproxy />    <context:component-scan base-package="com.fd"></context:component-scan>
public static void main(String[] args) {    ApplicationContext context = new ClassPathXmlApplicationContext("main.xml");    IHello helo = context.getBean(IHello.class);    helo.sayHello("fudong");}
0 0