목록전체 글 (220)
코딩하는 문과생
[인터셉터] - Spring Interceptor 서블릿 필터와 유사: 모든 요청과 응답 시 거쳐야 함 서블릿 필터와 다름: 스프링 컨테이너 로딩 후 적용 preHandle: 컨트롤러 실행 전 postHandle: 컨트롤러 실행 후, 아직 뷰를 실행하기 전 afterCompletion: 뷰를 실행한 이후 -사례: 웹 요청 처리 시간을 측정하는 Interceptor preHandle과 afterCompletion을 이용해 제작 HandlerInterceptorAdapter 상속받아서 인터셉터 생성 servlet-context(web과 관련된 설정파일)에서 설정: 하나의 빈으로 설정, 특정경로 설정 가능 [로그인 처리] 로그인 Interceptor = 세션트래킹 로그인시 세션에 사용자 정보를 저장한다. , ..
[개요] 서버에서 발생된 예외를 최종 사용자에게 전달되는 것을 방지 System예외는 Business예외로 다시 던지는 방식 사용 @ExceptionHandler와 @ControllerAdvice를 사용 [특징] 컨트롤러 기반: 부가기능을 제공하는 Advice클래스를 작성. 즉, 컨트롤러에서 처리한다. 글로벌 Exception 핸들러: @ControllerAdvice어노테이션을 포함한 클래스는 전역 예외처리 컨트롤러가 된다. SQLException은 복구가 불가능, MyBatis에서 DataAccessException으로 re-throwing한다. - @ControllerAdvice 모든 클래스에 대응한다는 의미 스프링 3.2이상 사용 @Controller나 @RestContrller에서 발생하는 예외를..
[스프링 트랜잭션] 주로 서비스 메서드를 대상으로 진행 - 선언적 트랜잭션 1. 어노테이션을 이용한 선언적 방식 root-context.xml에 Transaction Manager와 설정 트랜잭션이 필요한 클래스나 메소드에 @Transactional 어노테이션 추가 2. AOP를 이용한 선언적 방식 트랜잭션 매니저 설정 트랜잭션 어드바이스 설정: AOP설정: [Logging Tool] -Logging Tool commons-logging, log4j, logback등 툴이 있다. SLF4J과 Logback의 비중이 늘고 있다. ex. 트랜잭션 설정 - datasource.xml ex. 로깅 설정 -pom.xml ... org.springframework spring-context 4.3.9.RELEASE..
[AOP: Aspect Oriented Programming] : 관심사의 분리(기능의 분리) - 핵심적인 기능에서 부가적인 기능(Aspect)을 분리 핵심기능(Core Concerns): 업무 로직 부가기능(Cross-cutting Concerns): 로깅, 보안 1. 런타임시 핵심기능과 부가기능이 결합되어 작동 2. Advice(부가기능 "자체") + PointCut(어디에 적용할 지에 대한 "문법") = Aspect = Advisor(Spring AOP) 3. Target = Core Concerns 4. JoinPoint: 어디에 "위치"해야할 지 5. 위빙(Weaving): 포인트컷에 의해서 결정된 타깃의 JoinPoint에 부가기능이 삽입되는 과정 - Spring AOP Spring은 프록시 ..