Today I Learned - 38
Spring - 2
- 스프링 AOP 기능
- 스프링 MVC 기능
관점 지향 프로그래밍(AOP, Aspect Oriented Programming)
- 등장 배경
- 주기능 하나를 위해 로깅/보안/트랜잭션 등 보조기능을 일일이 구현
- 코드 복잡, 작업 시간 증가
- 관점 지향 프로그래밍(AOP)이란,
- 주기능과 보조기능을 분리해서 메서드 적용하는 방법!!
‘보조기능’ 적용.. 이라고 봐도 됨!
- 주기능과 보조기능을 분리해서 메서드 적용하는 방법!!
- 관련 용어
용어 | 설명 |
---|---|
aspect | 구현하고자 하는 보조 기능을 의미 |
advice | aspect의 실제 구현체(클래스)를 의미.. 메서드 호출을 기준으로 여러지점에서 실행됨 |
joinpoint | advice를 적용하는 지점.. 스프링은 method 결합점만 제공 |
pointcut | advice가 적용되는 대상을 지정 |
target | advice가 적용되는 클래스 |
weaving | advice를 주기능에 적용하는 것을 의미 |
- 스프링 프레임워크에서 AOP 기능 구현하는 방법
- 첫째, 스프링 프레임워크에서 제공하는 API 이용
- 둘째, @Aspect 애너테이션을 이용
AOP 기능 구현 - 스프링 API를 이용
- 구현 과정
- (1) Target 클래스 지정 // 주기능
- (2) Advice 클래스 지정 // 보조기능
- (3) 설정 파일에서 pointcut 설정
- (4) 설정 파일에서 adviser(advice와 pointcut 결합) 설정
- (5) 설정 파일에서 스프링의 ProxyFactoryBean 클래스 이용, target에 advice 설정
- (6) getBean() 메서드로 빈 객체에 접근, 사용
- 스프링 API에서 제공하는 Advice 메서드
- 구현 예시
스프링 프레임워크의 MVC
- 스프링 MVC 특징
- 모델2 아키텍처 지원
- 다른 모듈과의 연계 용이
- View 기술(Tiles, Sitemesh 등)과의 연계 용이
- 태그 라이브러리를 통해 메시지 출력, 테마 적용, 입력 폼 등 보다 쉽게 구현
- 스프링 MVC 구성 요소
- 스프링 MVC 기능 수행 과정
Spring 과제 - PDF 자료 실습
- 범위
- 수업자료 20 ~ 21장
-
기한: ~6/12(일)
- 과제 예시
- 수업자료 참고, 프로젝트 추가 생성
ex.
Spring_pro19_Homework
- lib 자료 copy
- xml 파일 복습
ex.
<bean>
요소 변경 or 추가 - 각 코드 복습
교재 참고, 예제 추가로 작성
- 수업자료 참고, 프로젝트 추가 생성
================================
- 20장 (.jar 파일로 export)
- 수업자료 12페이지
- Calculator, 첫 번째 bean, add 제외 나머지 메서드 중 하나를 주기능으로 지정
- xml 파일, proxyCal에 해당하는 빈 이름 변경해서 사용해보기
- CalcTest 실행
- 21장 - 1 (.war 파일로 export)
- 수업자료 13페이지
- action-servlet.xml 파일, bean id=”simpleUrlController2” 로 변경
- 정상 실행 되게끔 나머지 요소들도 변경
- 21장 - 2 (.war 파일로 export)
- 수업자료 20페이지
- bean id=”userController2” 로 변경
- 정상 실행 되게끔 나머지 요소들도 변경