Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.test.aop;
- import org.aspectj.lang.JoinPoint;
- import org.aspectj.lang.annotation.Aspect;
- import org.aspectj.lang.annotation.Before;
- import org.junit.Test;
- import org.junit.runner.RunWith;
- import org.springframework.aop.support.AopUtils;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.context.annotation.Bean;
- import org.springframework.context.annotation.Configuration;
- import org.springframework.context.annotation.EnableAspectJAutoProxy;
- import org.springframework.core.annotation.Order;
- import org.springframework.stereotype.Component;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.SpringRunner;
- import org.springframework.test.context.support.AnnotationConfigContextLoader;
- @RunWith(SpringRunner.class)
- @ContextConfiguration(loader= AnnotationConfigContextLoader.class)
- public class AspectTest {
- @Autowired Runnable main;
- @Test
- public void checkOrder() throws Exception {
- System.out.println(AopUtils.isAopProxy(main));
- main.run();
- }
- @Configuration
- @EnableAspectJAutoProxy
- static public class TestContext {
- @Bean
- public Runnable main() {
- return new Runnable() {
- public void run() {
- System.out.println("target executed");
- }
- };
- }
- @Aspect
- @Order(-1)
- @Component
- public static class OrderMinus1Aspect {
- @Before("execution(void *.run())")
- public void printOrder(JoinPoint jp) {
- System.out.println("order -1");
- }
- }
- @Aspect
- @Order(0)
- @Component
- public static class Order0Aspect {
- @Before("execution(void *.run())")
- public void printOrder(JoinPoint jp) {
- System.out.println("order 0");
- }
- }
- @Aspect
- @Order(1)
- @Component
- public static class Order1Aspect {
- @Before("execution(void *.run())")
- public void printOrder(JoinPoint jp) {
- System.out.println("order 1");
- }
- }
- @Aspect
- @Order(2)
- @Component
- public static class Order2Aspect {
- @Before("execution(void *.run())")
- public void printOrder(JoinPoint jp) {
- System.out.println("order 2");
- }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement