Back-End/Spring
@RequestParam - 1:1로 파라미터 집어넣기
@RequestParam HTTP Request 파라미터를 받을 수 있는 애노테이션이다.요청 파라미터와 메서드의 변수명을 일치하게 한다면 @RequestParam의 value값을 생략할 수 있고String, int같은 단순 타입의 경우 @RequestParam 애노테이션 자체도 생략 할 수 있다.required=false로 하면 파라미터가 필수 값이 아니다 라는 뜻이고 defaultValue로는 파라미터가 넘어오지 않더라도 기본 값을 줄 수 있다 URL 입력 예) /methodparam/m8?seq=100&id=kdarkdev&level=401.@RequestMapping("/methodparam/m8")02.public String m8(03.@RequestParam("seq") long seq, //..
@ModelAttribute - 파라메터 한번에 집어넣기
@ModelAttribute request 파라미터와 1:1 매핑해서 변수에 받으려면 @RequestParam을 사용하고DTO같은 객체에 여러 파라미터를 한번에 바인딩 하려면 @ModelAttribute를 사용하면 된다.URL 입력 예) /methodparam/m12?seq=100&id=kdarkdev&level=4&country=kr 1. DTO클래스01.public class UserDTO {02.private long seq;03.private String id;04.private int level;05.private String country;06.public long getSeq() {07.return seq;08.}09.public void setSeq(long seq) {10.this.seq..
스프링에서 Quartz 를 사용하여 잡스케줄링 하기 [출처] [본문스크랩] 스프링에서 Quartz 를 사용하여 잡스케줄링 하기|작성자 onandme
제너럴의 프로그래밍 스토리 | GENERAL http://blog.naver.com/minis24/80105686382스프링에서 쿼츠 잡스케줄링을 하는데 필요한 코드는 대부분 스프링 설정파일에 있다. 애플리케이션에서는 컨텍스트 파일을 로딩하기만 하면 스프링이 설정을 읽어서 스케줄러를 자동으로 실행한다. ^^ [ex: applicationContext_quartz.xml] ※ JobDetailBean 은 태그의 id 를 잡 이름으로 사용하고,스케줄러의 기본 그룹을 그룹이름으로 사용한다. JobDataAsMap 속성을 사용하여 JobDataMap에 데이터를 추가 할 수 있다. ※ 스프링에서는 SimpleTrigger클래스를 감싼 SimpleTriggerBean 과 CronTrigger클래스를 감싼 CronT..
기술에 독립적인 DAO를 만들기 위한 DataAccessException
DAO를 굳이 따로 만들어서 사용하는 이유는 무엇일까?가장 중요한 이유는 데이터 액세스 로직을 담은 코드를 다른 코드에서 분리해 놓기 위함이다.이렇게 함으로써 DAO를 사용하는 쪽(주로 Service or BO)에서는 DAO가 내부에서 어떤 데이터 액세스 기술(JDBC, JDO, JPA, TopLink, Hibernate, iBatis등)을 사용하는지 신경쓰지 않아도 된다.DAO와 사용하는 쪽은 DAO interface만 서로 공유하고 DAO는 DAO interface를 구현하고 있으면 되기 때문이다.하지만 문제가 있다. 바로 예외(Exception)이다. DAO가 JDBC를 사용하고 있다면 SQLException을 던질 것이고 Hibernate를 사용하고 있다면 해당 Hibernate에서 던져주는 Ex..
SpringMVC에서 간단한 ExceptionResolver 구성하기
SpringMVC에서 예외를 다루기 위해 web.xml내 명시할수 있는 예외 맵핑 방식과 비슷한 HandlerExceptionResolvers을 제공한다.스프링 프레임워크가 맘에 드는 점중 하나가 어떤 이론이나 원칙에만 근거하여 현상을 무시하지 않고, 현실적인 부분에 대한 해결책을 제공하기 때문이 아닐까 싶다.(기타 다른 기반구조보다는.)간단하게 HandleExceptionResolver는 컨트롤러에 발생하는 예외상황(Exception)을 처리해주는 Resolver인데, SpringMVC안에 있는 SimpleMappingExceptionResolver의 경우 Exception에 대한 view으로 forward해주는 기능을 제공한다.
스프링에서 Content Type별 View 자동 맵핑 하기
프로젝트를 진행 하다 보면 제일 많이 사용하는 뷰 (org.springframework.web.servlet.view.JstlView) 외에 다양한 뷰가 필요 합니다. (ajax,pdf,excel 또는 특정 x-internet 전용..등) 이런한 다양한 뷰를 맵핑 하기 위해서 여러 방법이 존재 합니다. 일반적인 방법은 아래와 같습니다. ModelAndView modelAndView = new ModelAndView("jsonView"); 하지만 이런 경우는 코드에 특정 뷰에 대한 하드 코딩을 해야 하는 단점이 있습니다. 그래서 제가 생각 하는 방법은 URL extension 부분을 parsing해서 해당되는 Content Type뷰를 리턴해서 찾아가는 방법 입니다. 예를 들어서 http://localho..
ibatis 태그. 자주 쓰는 것들.
링크스크랩에서 본문 스크랩으로 전환하였습니다.맘껏퍼가시고 출처를 밝혀주시면 감사하겠습니다.^-^덧글도 남겨주심 ㄳㄳ. 출처 : http://happy2ni.egloos.com/9609765 [iBatis] 주요 태그 Tag 1] Alias 2] 기본 태그 Select : Insert : Update: Delete : Statement : 3] 프로퍼티 존재여부 존재할때 : 존재하지 않을때 : 4] 프로퍼티 Null 체크 Null 일때 : Null 아닐때 : 5] 프로퍼티 Empty 체크 Empty 일때 : Empty 아닐때 : 6] 프로퍼티 값비교 같을때 : 같지 않을때 : 7] ParameterMap 8] ResultMap 9] Dynamic select a from test id = #a# name ..
Spring - Interceptor 를 사용한 login 처리
일반적인 사용자 외에 직접 주소를 쳐서 접근 하는 사용자를 방지하기 위하여매번 해당되는 요청시 마다 login검사를 해줘야 하는 경우가 있다. 이 경우 login검사를 모든 컨트롤러에서 해주기엔 게시판 하나만 있는 사이트라면 모를까다수의 기능을 가지고 있는 사이트에서라면 굉장히 애로사항이 꽃을 피울만한 일이다. 이런 경우에 login검사 처리를 Spring에서 제공하는 Interceptor를 사용하여 한번에 해결 가능하다 InterCeptor에서 제공하는 3가지 메소드는 각각 개입하는 시점이 다르다.preHandle - Controller 실행 요청전postHandle - view(jsp)로 forward되기 전에afterCompletion - 끝난뒤login 검사를 해야 될 시점은 Dispatcher가..