[WEB/SPRING] 55일차 - spring에서의 AOP(Aspect Oriented Programming) :: 소림사의 홍반장!

55일차


오늘 배울 내용
AOP(이메일전송)

<스프링>
Ioc (Inversion Of Control )  : 제어의 역전
DI ( Dependency Injection ) : 의존성 주입
 @AutoWired 주입방식
 set 주입방식
 생성자 주입방식


AOP ( Aspect Oriented Programming ) : 관점지향프로그래밍

왜 쓰지?
 객체지향 프로그래밍의 단점때문에 나온 개념


AOP는 서블릿필터랑 비슷하다.
주소에 따른 실행이 아니고 특정 메소드가 실행 될때 AOP 실행

aspect도 하나의 모듈

관점을 나중에 한 시점에서 결합될때 join point 사용

join 되었을때 Advice 제공

특정한 pointcut에 의해서 잘려진 것은 weaving으로 합침
weaving : 합쳐지는것


aspect-autoprxy에서 proxy-target-class의 기본값은 false
위처럼 되어있으면 interface를 기반으로 돌아가는데 true로 바꾸면 클래스 기반으로 들어간다.

<aop:aspectj-autoproxy proxy-target-class="true" />
이 코드를 모든 설정파일에 붙여넣기

1. common 패키지에 CommonAspect 클래스 만들기

// Aspect 구성요소
// 1. pointcut : 어떤 클래스의 메소드에 대해서 Aspect를 적용할지에대한 정규식과 같은 문법
// 2. advice : target(적용할 클래스의 메소드)에 적용할 소스

aop클래스에서 proxy클래스가 생성되야 되기때문에 final, private 등은 사용할 수 없다.

aop 적용시 문제점
 - 개발자 모드로 바뀐 내용이 서버에 바로바로 적용이 안된다.
  그래서 실 프로젝트에서는 맨 나중에 aop를 적용한다.
 - weaving 때문에 느려지는 단점이 있다.


james run.bat 실행 오류시 확인해야 할 사항
1. 설치된 경로중에 한글이 포함되지 않았는지 확인한다.
2. port 충돌이 일어날 경우에는
 james-2.3.2\apps\james\SAR-INF 이 경로안의 config.xml 안에서 포트를 수정한다.

 

email 설정할때 (email.메서드)

addTo : 보내는 사람
addCc : 참조
addBcc : 숨은 참조


트랜잭션 (Transaction)
 : 하나의 작업단위

 * ACID

  - Atomicity (원자성) : 모든 작업이 하나의 단위
  - Consistency (일관성) : 일관된 데이터 유지
  - Isolation (독립성) : 다른 트랜잭션과독립
  - Durability (내구성) : 커밋된 데이터의 유지

 

 

 

다른 카테고리의 글 목록

Dev. 640시간 뭉개기/강의내용정리 카테고리의 포스트를 톺아봅니다