1) 아규먼트 리졸버란? 아규먼트 리졸버란? 컨트롤러의 메소드의 인자로 사용자가 임의의 값을 전달하는 방법을 제공하고자 할 때 사용됩니다. 예를 들어, 세션에 저장되어 있는 값 중 특정 이름의 값을 메소드 인자로 전달합니다. 아규먼트 리졸버 작성방법 1/2 org.springframework.web.method.support.HandlerMethodArgumentResolver를 구현한 클래스를 작성합니다. supportsParameter메소드를 오버라이딩 한 후, 원하는 타입의 인자가 있는지 검사한 후 있을 경우 true가 리턴되도록 합니다. resolveArgument메소드를 오버라이딩 한 후, 메소드의 인자로 전달할 값을 리턴합니다. 아규먼트 리졸버 작성방법 2/2 Java Config에 설정하는 ..
2) 인터셉터를 이용해 Controller 공통 로직 처리하기 guestbook에다가 인터셉터를 담기 위한 kr.or.connect.guestbook.interceptor 패키지를 만듭니다. 그리고 LogInterceptor.java를 만듭니다. 이 클래스는 HandlerInterceptorAdapter 클래스를 상속받도록 합니다. 그리고 preHandle과 postHandle이라는 메서드를 오버라이딩합니다. preHandle이라는 메서드는 Controller 메서드가 실행되기 전에 실행이 되고 postHandle 메서드의 내용은 Controller의 메서드가 실행된 후에 실행되게 됩니다. 각각의 메서드에 sysout을 달아 콘솔에 출력할 내용을 입력합니다. 인터셉터를 만들면 해당 인터셉터를 등록합니다...
1) 인터셉터란? 스프링 DispatherServlet의 내부 동작에 대해서 다시 한번 살펴보겠습니다. 스프링이 동작될 때 클라이언트로부터 요청이 들어오고 만약 필터가 존재한다면 필터가 작업을 수행을 합니다. 예시로는 charset을 지정하는 필터가 있습니다. 스프링이 제공하는 필터를 사용할 수 있고 web.xml이나 그와 같은 일을 하는 부분에다가 이 필터를 등록을 하면 됩니다. 그러면 필터라고 하는 것은 요청이 들어왔을 때 요청을 받아내기 전, 응답이 나가기 전, 이때마다 수행되는 것입니다. 필터가 있다면 수행을 하고, 없다면 DispatcherServlet이 받아서 수행을 하게 될 겁니다. DispatcherServlet은 선처리 작업할 것들이 존재했다면 먼저 선처리 작업을 해주고 HandlerMa..
1) Spring MVC에서 Session사용하기 @SessionAttributes & @ModelAttribute @SessionAttributes 파라미터로 지정된 이름과 같은 이름이 @ModelAttribute에 지정되어 있을 경우 메소드가 반환되는 값은 세션에 저장됩니다. Controller 위쪽에다가 @SessionAttributes를 적고 메서드 위에 ModelAttribute를 적었는데 인자로 전달할 이름이 같은 경우에 메서드가 return 한 값은 argument의 이름을 key로 하여 세션에 저장되게 됩니다. 아래 예제에서는 setUpUserForm() 이라는 메서드에서 return 하고 있는 User 객체가 이 user라는 이름으로 세션에 저장됩니다. @SessionAttributes(..