분류 전체보기
-
스프링4.0-WebApplicationContext 계층 : 다수의 DispatcherServlet 설정웹프로그래밍/spring 2018. 7. 18. 14:14
DispatcherServlet은 그 자체가 서블릿으로 1개 이상 설정 가능하다.아래 xml 설정에 dispatcher, dispatcher3는 WebApplicationContext를 생성한다.하지만 2개의 DispatcherServlet은 각자의 설정 파일의 등록된 빈 객체를 공유할 수 없다. 서로 다른 DispatcherServlet이 공통 빈을 필요로 하는 경우, ContextLoaderListener를 사용하여 공통으로 사용할 빈을 설정한다. ContextLoaderListener가 생성하는 WebApplicationContext는 웹 어플리케이션에서 루트 컨텍스트가 된다.ContextLoaderListener에서 컨텍스트 파라미터를 명시하지 않으면 /WEB-INF/applicationConte..
-
스프링4.0- 익셉션 처리웹프로그래밍/spring 2018. 7. 18. 13:23
@ExceptionHandler해당 컨트롤러에서 발생한 익셉션만 처리@ExceptionHandler의 값으로 넣은 익셉션이 발생하면 메서드에서 익셉션 처리 후 리턴한 뷰로 이동 응답코드는 기본 200이다. 다른 응답 코드를 전송하려면 HttpServletResponse 파라미터를 추가하고 setStatus() 메서드로 응답코드를 지정한다.HttpSession, Model도 파라미터로 쓸 수 있다.응답코드에 따라서 익셉션 페이지가 다르다. -컨트롤러 클래스//RuntimeException은 슈퍼 클래스로 하위의 uncheckedexception을 모두 포함한다.//즉 모든 익셉션을 잡아낸다.@ExceptionHandler(RuntimeException.class)public String handleExce..
-
스프링4.0 - @Valid / @InitBinder 검증 & 글로벌 Validator웹프로그래밍/spring 2018. 7. 17. 23:03
@Valid / @InitBinder 검증 JSR 303 표준에 정의된 @Valid으로 커맨드 객체를 검사하는 코드를 직접 호출하지 않고 스프링 프레임워크가 호출하도록 설정한다. 1. 의존 설정 추가 -pom.xml javax.validationvalidation-api1.0.0.GA 2.컨트롤러 클래스에서 @Valid / @InitBinder 사용 import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpSession;import javax.validation.Valid; import org.springframework.stereotype.Controller;import org.springframework.validation...
-
스프링4.0 - Validator / Errors / BindingResult로 객체 검증 : 에러 메시지웹프로그래밍/spring 2018. 7. 17. 22:38
Validator / Errors / BindingResult로 객체 검증 유효성 검사?웹 브라우저 : 자바스크립트로 웹서버에 전송하기 전 검사한다. 웹 서버: 전달 받은 요청 파라미터를 검사한다. 스프링의 유효성 검사org.springframework.validation.Validator 인터페이스는 스프링이 제공하는 객체 검증, 에러 메세지 지원 등의 기능을 사용할 수 있다.특히 컨트롤러에서 커맨드 객체의 값을 검증할때 Validator가 유용하다.유효성 검증을 수행할 클래스를 만들고 Validator 인터페이스를 구현한다. 그리고 아래 2개 메서드를 오버라이딩한다. -Validator 인터페이스supports() - 객체의 타입 검증validate() - 자바빈의 속성 값 검증 위 메서드에서 val..
-
스프링4.0 - AOP : @Aspect 기반웹프로그래밍/spring 2018. 7. 16. 21:10
XML 스키마 설정 대신에 @Aspect 어노테이션을 클래스에 적용한다. 1. Before Adviceimport org.aspectj.lang.annotation.Aspect;import org.aspectj.lang.annotation.Before; @Aspectpublic class ArticleCacheAspect { private Map cache =new HashMap();@Around("execution(public * *..ReadArticleService.*(..))")public Article cache(ProceedingJoinPoint joinPoint) throws Throwable {Integer id = (Integer) joinPoint.getArgs()[0];Article ..
-
스프링4.0 - AOP 기초웹프로그래밍/spring 2018. 7. 15. 19:23
AOP란?어플리케이션의 공통 관심 사항과 핵심 관심 사항을 기준으로 프로그래밍 하므로써 공통 모듈을 여러 코드에 쉽게 적용하는 것 핵심 로직에서 공통 기능을 직접 호출 하지는 않는다.공통 기능은 컴파일하거나 클래스를 로딩할때, 또는 클래스의 객체를 생성할때 AOP가 적용된다. 즉, 핵심 로직 구현 코드에 공통 기능이 삽입된다. ※spring API 문서:https://docs.spring.io/spring-framework/docs/2.0.x/reference/aop.html AOP 용어Joinpoint - 실행지점, 즉 Advice가 적용될 메소드 Pointcut - JoinPoint와 Advice를 연결해주는 설명어. 예를들어, Pointcut이 가리키는 특정 이름의 메소드에 Advice가 적용된다...
-