1 / 13

고급자바프로그래밍 (Advanced Java Programming)

고급자바프로그래밍 (Advanced Java Programming). 강원대학교 컴퓨터학부 2012 년 가을학기 담당교수 정충교. 6 장 AOP 2. 6.5 스프링 AOP. 투명한 부가 기능 부가 기능을 적용한 후에도 기존 기본 기능의 설계와 코드에 영향을 주지 않음. 자동 프록시 생성. 빈 후처리기 DefaultAdvisorAutoProxyCreator implements BeanPostProcessor. org.springframework.aop Interface Pointcut {

Download Presentation

고급자바프로그래밍 (Advanced Java Programming)

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 고급자바프로그래밍(Advanced Java Programming) 강원대학교컴퓨터학부 2012년 가을학기 담당교수정충교

  2. 6장 AOP 2

  3. 6.5 스프링 AOP • 투명한 부가 기능 • 부가 기능을 적용한 후에도 기존 기본 기능의 설계와 코드에 영향을 주지 않음

  4. 자동 프록시 생성 • 빈 후처리기 • DefaultAdvisorAutoProxyCreator implements BeanPostProcessor org.springframework.aop Interface Pointcut { ClassFiltergetClassFilter() ; MethodMatchergetMethodMatcher(); }

  5. 6.5.3 포인트컷표현식을 이용한 포인트컷 AspectJExpressionPointcut AspectJExpressionPointcutpointcut = new AspectJExpressionPointcut(); pointcut.setExpression("execution(* minus(int,int))");pointcut.setExpression("execution(* springbook.test.Target.minus(int,int))"); <bean id="transactionPointcut" class="org.springframework.aop.aspectj.AspectJExpressionPointcut"> <property name="expression" value="execution(* *..*ServiceImpl.upgrade*(..))" /> </bean>

  6. 6.5.4 AOP란 무엇인가? • 트랜잭션 서비스 추상화 • 프록시와데코레이션 패턴 • 다이내믹 프록시와프록시팩토리빈 • 자동 프록시 생성 방법과 포인트컷 • 부가기능의 모듈화 • AOP: 에스펙트 지향 프로그래밍

  7. 독립 에스펙트를 이용한 부가기능의 분리와 모듈화

  8. 6.5.5 AOP 적용 기술 • 프록시를 이용한 AOP • 바이트코드 생성과 조작을 통한 AOP

  9. 6.5.7 AOP의 네임스페이스 아래 설정 파일을 단순화 – 리스트 6-66, 6-67 <bean id="transactionAdvice" class="springbook.user.service.TransactionAdvice"> <property name="transactionManager" ref="transactionManager" /> </bean> <bean id="transactionPointcut" class="org.springframework.aop.aspectj.AspectJExpressionPointcut"> <property name="expression" value="execution(* *..*ServiceImpl.upgrade*(..))" /> </bean> <bean id="transactionAdvisor" class="org.springframework.aop.support.DefaultPointcutAdvisor"> <property name="advice" ref="transactionAdvice" /> <property name="pointcut" ref="transactionPointcut" /> </bean>

  10. 6.7 트랜잭션 속성 • 트랜잭션 전파 (transaction propagation) • PROPAGATION_REQUIRED • PROPAGATION_REQUIRES_NEW • PROPAGATION_NOT_SUPPORTED • 격리수준 (isolation level) • 제한시간 (timeout) • 읽기전용(readonly)

  11. TransactionInterceptor와 transaction attributes • 메소드별로 다른 속성의 트랜잭션을 적용 • TransactionInterceptor어드바이스 • 리스트 6-71 • 리스트 6-72

  12. 6.7 애노테이션 트랜잭션 속성과 포인트컷 • <tx:annotation-driven/>

More Related