Download - 고급자바프로그래밍 (Advanced Java Programming)
![Page 1: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/1.jpg)
1/13
1
고급자바프로그래밍(ADVANCED JAVA PROGRAMMING)
강원대학교 컴퓨터학부2012 년 가을학기담당교수 정충교
![Page 2: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/2.jpg)
2/13
2
6 장 AOP 2
![Page 3: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/3.jpg)
3/13
3
• 투명한 부가 기능• 부가 기능을 적용한 후에도 기존 기본 기능의 설계와 코드에
영향을 주지 않음
6.5 스프링 AOP
![Page 4: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/4.jpg)
4/13
4
자동 프록시 생성• 빈 후처리기• DefaultAdvisorAutoProxyCreator implements BeanPostProcessor
org.springframework.aop Interface Pointcut {
ClassFilter getClassFilter() ;MethodMatcher getMethodMatcher();
}
![Page 5: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/5.jpg)
5/13
5
6.5.3 포인트컷 표현식을 이용한 포인트컷
AspectJExpressionPointcut
AspectJExpressionPointcut pointcut = 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>
![Page 6: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/6.jpg)
6/13
6
6.5.4 AOP 란 무엇인가 ?
• 트랜잭션 서비스 추상화• 프록시와 데코레이션 패턴• 다이내믹 프록시와 프록시 팩토리빈• 자동 프록시 생성 방법과 포인트컷• 부가기능의 모듈화• AOP: 에스펙트 지향 프로그래밍
![Page 7: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/7.jpg)
7/13
7
독립 에스펙트를 이용한 부가기능의 분리와 모듈화
![Page 8: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/8.jpg)
8/13
8
6.5.5 AOP 적용 기술• 프록시를 이용한 AOP
• 바이트코드 생성과 조작을 통한 AOP
![Page 9: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/9.jpg)
9/13
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>
![Page 10: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/10.jpg)
10/13
10
6.7 트랜잭션 속성• 트랜잭션 전파 (transaction propagation)
• PROPAGATION_REQUIRED• PROPAGATION_REQUIRES_NEW• PROPAGATION_NOT_SUPPORTED
• 격리수준 (isolation level)
• 제한시간 (timeout)
• 읽기전용 (readonly)
![Page 11: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/11.jpg)
11/13
11
TransactionInterceptor 와 transaction attributes
• 메소드별로 다른 속성의 트랜잭션을 적용• TransactionInterceptor 어드바이스
• 리스트 6-71• 리스트 6-72
![Page 12: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/12.jpg)
12/13
12
6.7 애노테이션 트랜잭션 속성과 포인트컷
• <tx:annotation-driven/>
![Page 13: 고급자바프로그래밍 (Advanced Java Programming)](https://reader034.vdocuments.pub/reader034/viewer/2022050819/5681309f550346895d969518/html5/thumbnails/13.jpg)
13/13
13
끝