spring (10) 썸네일형 리스트형 IOC(Inversion of Control)컨테이너 - 서블릿 컨테이너 스프링 프레임워크를 이해하는데 가장 중요한 개념이 바로 컨테이너이다. 컨테이너의 개념은 스프링에서 처음 사용된 것은 아니며, 기존의 서블릿이나 EJB 기술에서 사용해왔다. 그리고 대부분 컨테이너는 비슷한 구조와 동작 방식을 가지고 있으므로 서블릿 컨테이너를 통해 스프링 컨테이너의 동작 방식을 유추해볼 수 있다. 다음과 같이 간단한 서블릿 클래스를 만들었다고 가정하자. HelloServlet.java public class HelloServlet extends HttpServlet { public HelloServlet() { System.out.println("===> HelloServlet 객체 생성"); } protected void doGet(HttpServletRequest request, Htt.. MVC 프레임워크 구현 - (중) Controller 인터페이스 작성 Controller를 구성하는 요소 중에서 DispatcherServlet은 클라이언트의 요청을 가장 먼저 받아들이는 Front Controller이다. 하지만 클라이언트의 요청을 처리하기 위해 DispatcherServlet이 하는 일은 거의 없으며, 실질적인 요청 처리는 각 Controller에서 담당한다. 구체적인 Controller 클래스들을 구현하기에 앞서 모든 Controller를 같은 타입으로 관리하기 위한 인터페이스를 만들어야 한다. 클라이언트의 요청을 받은 DispatcherServlet은 HandlerMapping을 통해 Controller 객체를 검색하고, 검색된 Controller를 실행한다. 이때 어떤 Controller 객체가 검색되더라도 같은.. @ModelAttribute와 커맨드 객체(2) 커맨드 객체(Command Object) 커맨드 객체(Command Object)란 HttpServletRequest를 통해 들어온 요청 파라미터들을 setter메서드를 이용하여 객체에 정의되어있는 속성에 바인딩이 되는 객체를 의미합니다. 커맨드 객체는 보통 VO 나 DTO를 의미하며, HttpServletRequest로 받아오는 요청 파라미터의 key 값과 동일한 이름의 속성들과 setter 메서드를 가지고 있어야 합니다. 어떻게 자동으로 바인딩을 시켜주냐 하면, 스프링이 내부적으로 HttpServletRequest와 커맨드 객체의 setter 메서드를 이용하여 알아서 바인딩 시켜줍니다. 마치 객체를 JSON 형식으로 변환하기 위해 Jackon2ObjectMapperBuilder가 autoDetectG.. @ModelAttribute와 커맨드 객체(1) @ModelAttribute 어놑ㅌ테이션의 기능과 커맨드 객체의 기능에 대해서 알아보겠습니다. 추가적으로 @RequestParam 어노테이션과 HttpServletRequest에 대해서도 추가적으로 다뤄보겠습니다. 순서는 HttpServletRequest > @RequestParam > 커맨드 객체 > @ModelAttribute 순서로 이해해야 세가지 개념에 대해서 확실하게 이해하실 수 있습니다. Extends the ServletRequest interface to provide request information for HTTP servlets. The servlet container create an HttpServletRequest object and passes it as an argument.. web.xml - Element 자주 사용하는 Element 위주로 정리 Element web.xml의 Root-Element 기능을 담당한다. xmlns와 servlet의 버전을 설정 Element Servlet context의 parameter를 선언해주는 부분이다. 쉽게 생각하자면 web.xml의 전역 변수 같은 느낌이다. 참고로, 은 지역변수라고 생각하면 이해가 쉽다. param-name : context parameter의 이름 param-value : context parameter의 값 contextConfigLocation /WEB-INF/spring/root-context.xml Element Application LIstener Bean을 카리키기 위한 부분으로, 이 때 해당 Bean은 웹 어플리케이션에 등록 되어있어.. 이전 1 2 다음