고급자바프로그래밍 (Advanced Java Programming) - PowerPoint PPT Presentation

carter-morse
advanced java programming n.
Skip this Video
Loading SlideShow in 5 Seconds..
고급자바프로그래밍 (Advanced Java Programming) PowerPoint Presentation
Download Presentation
고급자바프로그래밍 (Advanced Java Programming)

play fullscreen
1 / 13
Download Presentation
고급자바프로그래밍 (Advanced Java Programming)
217 Views
Download Presentation

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

- - - - - - - - - - - - - - - - - - - - - - - - - - - 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/>