Spring_7_1 AOP XML 로 구현

6014 단어
@AspectJ
  • AspectJ 는 절단면 을 위 한 프레임 워 크 로 자바 언어 를 확장 했다.AspectJ 는 AOP 문법 을 정 의 했 기 때문에 인 코딩 규범 을 지 키 는 class 파일 을 만 드 는 전문 컴 파 일 러 가 있 습 니 다.
  • AspectJ 는 자바 언어 를 기반 으로 한 AOP 프레임 워 크 입 니 다.
  • Spring 2.0 이후 AspectJ 접점 에 대한 지지 표현 이 새로 추가 됐다.
  • @ AspectJ 는 AspectJ 가 추가 한 기능 으로 JDK 5 주해 기술 을 통 해 Bean 클래스 에서 직접 절단면 을 정의 할 수 있 습 니 다.
  • 새로운 버 전의 Spring 프레임 워 크, AspectJ 방식 으로 AOP
  • 개발 을 권장 합 니 다.
  • AspectJ 를 사용 하려 면 Spring AOP 집합 AspectJ 관련 jar 가방 을 가 져 와 야 합 니 다.

  • Spring AOP
  • Spring 에서 AOP 작업 을 하고 AspectJ 를 사용 하여 이 루어 집 니 다.
  • AspectJ 는 Spring 의 일부분 이 아니 라 spring 과 함께 사용 하여 AOP 작업
  • jar 패키지 가 져 오기
    가방
    commons-logging-1.1.3.jar
    log4j-1.2.17.jar
    spring-beans-4.2.4.RELEASE.jar
    spring-context-4.2.4.RELEASE.jar
    spring-core-4.2.4.RELEASE.jar
    spring-expression-4.2.4.RELEASE.jar
    spring-aop-4.2.4.RELEASE.jar
    spring-expression-4.2.4.RELEASE.jar
    aopalliance-1.0.jar
    aspectjweaver-1.8.9.jar
    spring-aspects-4.2.4.RELEASE
    가방
    다운로드 주소
    aopalliance-1.0.jar
    http://mvnrepository.com/artifact/aopalliance/aopalliance
    aspectjweaver-1.8.9.jar
    http://mvnrepository.com/artifact/org.aspectj/aspectjweaver
    위 에 있 는 jar 가방 aopalliance-1.0.jaraspectjweaver-1.8.9.jar 두 개의 jar 가방 spring 의 lib 가방 은 제공 되 지 않 습 니 다. 저희 가 다운로드 해 야 합 니 다.
    가방
    다운로드 주소
    aopalliance-1.0.jar
    http://mvnrepository.com/artifact/aopalliance/aopalliance
    aspectjweaver-1.8.9.jar
    http://mvnrepository.com/artifact/org.aspectj/aspectjweaver
    AOP 실현
    설정 제약 조건
    spring. xml 파일 에 제약 조건 을 추가 합 니 다.
    
    
    
    
    

    피 증강 클래스 만 들 기
    다음 예제 에서 우 리 는 add () 방법 을 강화 합 니 다.
    package com.sfox.spring.aop;
    
    public class Book {
        
        public String add(String data1,String data2){
            System.out.println("     >>>>>data1:" + data1 + ";data2:" + data2);
            return "         ";
        }
    }
    
    

    증강 클래스 만 들 기
    package com.sfox.spring.aop;
    
    import org.aspectj.lang.ProceedingJoinPoint;
    
    public class MyBook {
        
        public void before(){
            System.out.println("    ......");
        }
        
        public void after(){
            System.out.println("    ......");
        }
        
        public void around(ProceedingJoinPoint proceedingJoinPoint) throws Throwable{
            
            System.out.println("    .....");
    
            String str = (String) proceedingJoinPoint.proceed(new String[]{"    1","    2"});
            
            System.out.println("    >>>        :" + str);
        }
    }
    
    

    위의 코드 를 통 해 우 리 는 '전치, 후 치 와 서 라운드' 만 제 시 했 습 니 다. 전치 증강 과 후 치 증강 은 모두 이해 하기 쉽 습 니 다. 여 기 는 소개 하지 않 겠 습 니 다. 다음은 서 라운드 에 대해 소개 하 겠 습 니 다.
  • 서 라운드
  • 서 라운드 사용 시 방법 에 들 어 오 는 roceding JoinPoint 대상 은 필수 적 입 니 다. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd 방법 을 통 해 강 화 된 방법 을 호출 해 야 하기 때 문 입 니 다.

  • proceed () 방법 설명 proceed () 방법 은 두 가지 가 있 고 하 나 는 인삼 이 있 으 며 하 나 는 인삼 이 없다
  • .
  • 인삼 없 음: 강 화 된 방법 이 호출 될 때 전달 하 는 매개 변 수 는 변 하지 않 습 니 다
  • 참조 가 있 습 니 다. 호출 할 때 들 어 오 는 매개 변 수 는 proceed () 방법 에서 들 어 오 는 매개 변 수 를 교체 합 니 다.

  • spring. xml 에 증강 설정
    
    
            
            
            
            
            
            
            
                
                
                
                 
                    
                    
                    
                    
                    
                    
                    
                 
            
    
    

    테스트 코드
    public class AopTest {
        @Test
        public void testAop(){
            ApplicationContext context = new ClassPathXmlApplicationContext("spring.xml");
            Book book = (Book) context.getBean("book");
            book.add("1","2");
        }
    }
    

    실행 결과
  • 무 참
  •     ......
        .....
         >>>>>data1:    1;data2:    2
        >>>        :         
        ......
    
  • 인삼
  •     ......
        .....
         >>>>>data1:    1;data2:    2
        >>>        :         
        ......
    
    

    좋은 웹페이지 즐겨찾기