스프링 8

[Spring] 익셉션 처리(@ControllerAdvice 사용)

3.2 버전부터 추가된 기능으로써 이 기능을 사용하면 지정된 패키지 아래의 Exception은 모두 이쪽을 거치게 됩니다. // 아래처럼 패키지를 지정하면 해당 패키지 아래에서 발생하는 Exception만 캐치한다. @ControllerAdvice(basePackages = {"com.test.controller.web"}) public class TestExceptionHandler{ @ExceptionHandler(Exception.class) // 이런식으로 익셉션 종류별로 처리를 둘 수 있다. public void handleException(Exception e){ System.out.println("exception ..."); } @ExceptionHandler(RuntimeException..

[Spring] Mybatis 사용하기 (mapper를 interface를 이용하여 호출)

Mapper namespace 와 ID를 연결할 Interface 를 두어서 interface를 호출하는 방법이다. [Spring] Mybatis 에서 Mapper(매퍼) 연결하는 2가지 방법에 대한 선택 가이드.(링크) 마이바티스를 설정하는 것은 다음의 포스트를 참조링크 : [Spring] Mybatis 설정하기 (기본설정) 바로 코딩을 보자.이전에 Mybatis를 설정했던 파일(sqlSessionFactory 등을 설정했던 xml 파일)에서 다음의 것을 추가한다. 아래의 것은 매퍼파일의 내용이다. /* query */ basePackage로 설정한 패키지 위치에 'interface'를 생성한다.(클래스가 아니다) package com.kr.mapper.;// 매퍼의 namespace와는 경로를 맞추어..

[Spring] Mybatis 사용하기 (mapper의 id를 직접 호출)

Mapper namespace 와 ID를 직접 호출하여 조회하는 방법이다. 이 방법은 sqlSession을 이용해서 직접 호출하는 방식이다. [Spring] Mybatis 에서 Mapper(매퍼) 연결하는 2가지 방법에 대한 선택 가이드.(링크) 마이바티스를 설정하는 것은 다음의 포스트를 참조링크 : [Spring] Mybatis 설정하기 (기본설정) 바로 코딩을 보자 // 스프링의 어노테이션을 이용해 SqlSession을 주입하여 사용.@Autowiredprivate SqlSession sqlSession; // getTest를 이용해 쿼리를 조회하는 샘플public HashMap getTest(Map paramMap, ModelMap model) throws Exception {HashMap resu..

[Spring] Mybatis 설정하기 (기본설정)

Mybatis 설정을 다음과 같이 해둔다.여기서는 기본적인 원리를 설명하는 것은 아니기 때문에 어느정도 아는 분이 보았으면 좋겠다. ${jdbc.driverClassName} 과 같은 설정은 Property파일을 이용하여 설정하였다.사용할지 모른다면 값을 직접 넣어도 된다. /WEB-INF/classes/mapper/*.xml/WEB-INF/classes/mapper/*/*.xml ### sqlSessionFactory에서 지정했던 mybatis-config.xml 파일 설정 이정도 설정하면 사용이 가능하다.

[Spring] Mybatis 에서 Insert 시 자동 생성키 이용하기

########### Mysql의 경우테이블 스키마에 AUTO_INCREMENT 를 설정할 경우 자동으로 생성된다.AUTO_INCREMENT 로 생성된 Key 값이 필요한 경우 사용하는 방법이다. Insert를 할때는 아래와 같이 Mapper에 코딩할 것이다# useGeneratedKeys 를 true로 넣어줘야 함./* query */ 실행을 정상적으로 완료하면 Insert 된 행의 ID값을 가지는데 이 ID값은 DataClass에 선언되어있는(Map 형태일 경우 key 값이 ID) 필드에 저절로 들어가고 Java단에서 호출이 가능해진다. ########### ORACLE의 경우오라클은 AUTO_INCREMENT 가 없고 Sequence에서 값을 가져와서 Insert를 해줘야 하기 때문에 아래와 같이 ..

[Spring] Mybatis 에서 Mapper(매퍼) 연결하는 2가지 방법에 대한 선택 가이드.

Mybatis 에서 SQL을 저장한 MAPPER를 연결하는 방법은 크게 2가지 이다. 1) Mapper namespace 를 직접 입력하여 호출하는 방법.2) Interface 클래스를 만들어서 매핑, 호출하는 방법. 서로의 장단점이 있는데 ### 1번은 장점- 설정이 간단하다.(mybatis xml 파일 설정.)- 파일을 추가로 생성할 필요가 없다.- 코딩이 줄어든다. 단점- namespace 와 SQL ID를 풀로 써야하기 때문에 오타로 인한 에러유발이 가능하다.- 쿼리에 대한 주석을 넣으려면 Mapper 파일을 직접 열어야 하는데, 해당 Mapper파일을 Find로 직접 찾아야 한다.- 어떤 ID들이 있는지 확인하려면 쿼리가 긴게 많을경우 알아보기가 힘들다.- SqlSession 을 이용하여 조회할..

[Spring] web.xml 설정.

web.xml 은 Deployment Descriptor(배포 서술자) 라고 불리며 환경설정 부분을 담당한다. 출처 : [JSP & Servlet 배경지식] 4. Servlet – Deployment Descriptor(DD) 1. 서블릿파일들은 소스형태로 저장. 주로 비즈니스 로직을 구현.2. 서블릿파일들이 빌드되어 class 형태로 자동 생성.3. 사용자에게 보여지는 Front-end 부분 파일.4. 배포서술자가 위치하고 있으며 없어서는 안되는 파일.5. 개발시 사용될 라이브러리들을 다운받아 추가 & 사용 DD(Deployment Descriptor(배포 서술자) 란?WEB-INF 폴더 아래 web.xml 파일명으로 항상 존재하며 서버 시작시 메모리에 로딩. 클라이언트 요청에 의해 컨테이너는 DD를 ..

공부/프로그래밍 2017.04.18 (2)

스프링(spring) 인터셉터(Interceptor) 설정하기

Interceptor 는 목적에 따라 사용할 수 있는데 대표적인 것으로 로그인 인증같은 것일다. 예를들어 어떤 매뉴에 접근하는데, 해당 매뉴가 로그인이 되어있는지 여부를 필수적으로 점검해야할 때 등 그렇다. 나는 Interceptor의 적용을 로그를 쌓는데에 두었다. 그래서 페이지를 접근할때마다 혹은 RESTFULL을 호출할 때마다 로그를 쌓게하기 위해서 Interceptor를 사용했다. 설정은 다음과 같다. 우선 스프링을 설정할 xml에 아래를 넣어두자 (내 경우는 servlet-context.xml 파일에 넣어두었다) 위에서 지정한 클래스를 생성해주자. 해당 클래스는 HandlerInterceptorAdapter 클래스를 꼭 상속시켜야 한다. 그리고 2개의 메서드를 오버로드 한다 public clas..