목록SPRING/chapter06_AOP (9)
WON.dev
패키지명 : controller (wed.xml파일에 추가) encodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding utf-8 forceEncoding true encodingFilter /* chapter03_MVC/pom.xml에서 변경할것들 1. 1.611로변경 2. 3.1.1.RELEASE5.0.7로변경 3. log4j 밑에 runtime주석처리 아니면 삭제 4. 2.53.1.0으로 변경 javax.servlet-apijavax.추가(바로위에) 5. 4.74.12로변경 6. 1.611로변경 1.611로변경 7. https://mvnrepository.com/artifact/org.projectlombok/lomb..
4.0.0 org.joonzis controller chapter06_AOP war 1.0.0-BUILD-SNAPSHOT 11 5.0.7.RELEASE 1.6.10 1.6.6 org.springframework spring-context ${org.springframework-version} commons-logging commons-logging org.springframework spring-webmvc ${org.springframework-version} org.aspectj aspectjrt ${org.aspectj-version} org.slf4j slf4j-api ${org.slf4j-version} org.slf4j jcl-over-slf4j ${org.slf4j-version} runti..
package org.joonzis.service; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import lombok.Setter; import lombok.extern.log4j.Log4j; @Log4j @RunWith(SpringJUnit4ClassRunner.class) @ContextConfi..
package org.joonzis.service; import org.springframework.stereotype.Service; @Service public class SampleServiceImpl implements SampleService{ @Override public Integer doAdd(String str1, String str2) throws Exception { return Integer.parseInt(str1) +Integer.parseInt(str2) ; } }
package org.joonzis.service; public interface SampleService { public Integer doAdd(String str1, String str2) throws Exception; }
package org.joonzis.aop; import java.util.Arrays; import org.aspectj.lang.ProceedingJoinPoint; import org.aspectj.lang.annotation.AfterThrowing; import org.aspectj.lang.annotation.Around; import org.aspectj.lang.annotation.Aspect; import org.aspectj.lang.annotation.Before; import org.springframework.stereotype.Component; import lombok.extern.log4j.Log4j; @Log4j @Component // class를 빈으로 오게하는 것(빈으..
1. Transaction - 트랜잭션의 성격은 ACID원칙으로 설명한다. 1) 원자성 : 하나의 트랜잭션은 모두 하나의 단위로 처리되어야 한다. 어떤 트랜잭션이 A와 B로 구성된다면 항상 A,B의 처리 결과는 동일한 결과이어야 한다. 즉 A는 성공했지만, B는 실패할 경우 A,B는 원래 상태로 되돌려져야만 한다. 어떤 작업이 잘못되는 경우 모든 것은 다시 원점으로 되돌아가야만 한다. 2) 일관성 : 트랜잭션이 성공했다면 데이터베이스의 모든 데이터는 일관성을 유지해야만 한다. 트랜잭션으로 처리된 데이터와 일반 데이터 사이에는 전혀 차이가 없어야만 한다. 3) 격리 : 트랜잭션으로 처리되는 중간에 외부에서의 간섭은 없어야만 한다. 4) 영속성 : 트랜잭션이 성공적으로 처리되면, 그 결과는 영속적으로 보관되..
1. AOP (Aspect Oriented Programming) - 관점 지향 프로그래밍이라고 불린다. - 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어 그 관점을 기준으로 각각 모듈화 한다. - 관점> 파라미터는 올바르게 들어왔는가? > 작업을 하는 사용자가 적절한 권한을 가졌는가? > 작업에서 발생할 모든 예외는 어떻게 처리하는가? ex) log.info() 등 로그를 작성하는 일은 반복적으로 하지만 핵심 기능은 아니다. 따라서 관심사로 간주할 수 있다. - 주로 Java API를 이용한다. 1) 주요 개념 (1) Aspect : 관심사를 모듈화 한 것, 주로 부가기능을 모듈화한다. (2) Target : Aspect를 적용하는 곳(클래스, 메소드 등) (3) Advice : 실제 ..