본문 바로가기

AOP

AOP 설정을 root-context 와 servlet-context 에 했을 때의 차이점 AOP 설정을 root-context 와 servlet-context 에 했을 때의 차이점 AOP 적용을 위해 구현한 Advice 를 component-scan 을 통해 불러와야 한다. component-scan 은 root-context 와 servlet-context 에 할 수 있는데, 위 두 context 간 계층이 존재하기 때문에 설정시 주의해야 한다. 1. root-context 에서 scan 하여 추가된 component 는 servlet-context 에서 scan 하여 추가된 component 를 사용할 수 있다. 2. 반대로 servlet-context 에서 추가된 component 는 root-context 에서 추가된 component 를 사용할 수 없다. 따라서 아래와 같은 상황에서.. 더보기
[Spring] 스프링 트랜잭션 적용하기 (Spring + MyBatis + MySQL) AOP를 이용한 Transaction 적용 (Spring + MyBatis + MySQL) 스프링 트랜잭션은 설정 파일이나 Annotation을 이용해서 트랜잭션의 범위, 롤백 규칙 등을 정의한다. 태그를 이용한 트랜잭션 처리@Transaction Annotation을 이용한 트랜잭션 설정 나는 AOP를 이용한 트랜잭션을 적용하였는데, 먼저 확인해봐야 할 것은인터페이스 코드 유무 확인 스프링의 트랜잭션 AOP는 기본적으로 서비스 계층의 Interface를 JDK Dynamic Proxy 기술을 이용하여 AOP를 지원한다고 한다. 하지만 Interface가 없다면 CGLib를 이용하여 클래스 Proxy를 생성해야 한다고 한다. aspectj dependencyorg.aspectjaspectjweaver1... 더보기
[Spring] spring AOP Pointcut 표현식 Pointcut 표현식 execution(①수식어패턴? ②리턴타입패턴 ③패키지패턴?이름패턴(④파라미터패턴) ① 수식어패턴 부분은 생략 가능한 부분으로서 public, protected 등이 온다.②리턴타입패턴 부분은 리턴 타입을 명시한다.③클래스이름패턴 과 이름패턴 부분은 매칭될 파라미터에 대해서 명시한다.④파라미터패턴 부분은 매칭될 파라미터에 대해서 명시한다. 각 패턴은 '*' 을 이용하여 모든 값을 표현할 수 있다. 또한 '..'을 이용하여 0개 이상이라는 의미를 표현할 수 있다. ex ) public * com.project.abcd.service.mgr..*.*(..)리턴 타입이 모든 것이고, com.project.abcd.service.mgr 패키지 및 하위 패키지에 있는파라미터가 0개 이상인 .. 더보기