목록웹 프로그래밍/Spring (21)
코딩하는 문과생

1. JDBC란? - 자바에서 DB프로그래밍을 하기위해 사용되는 API - JDBC Driver를 통해 자바와 DB를 연결할 수 있다. 2. 문제점 - 신규 프로세스 개발 중 작성한 ServiceImpl과 xml파일 내 DB쿼리에 문제가 없어보이지만, 계속해서 에러발생 - 로그 확인 결과 Service쪽에서 저장된 값을 받아오지 못해 NullPointException 발생 - 그러나, 로그에 찍힌 Select쿼리는 조회값 정상 확인 *** 즉, 조회 결과를 자바에서 받지를 못함 *** 3. 대처 - Service측에서 Insert는 정상적으로 작동, Select문만 에러 발생 - 테이블 자체를 Drop하고 char(2)부분을 varchar2(1)로 수정해 새로 생성 - 정상 작동 확인 4. 이유? - c..

[인터셉터] - 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..