분류 전체보기 (212) 썸네일형 리스트형 스프링 MVC 설정 저번 글에서는 스프링의 기본인 서블릿과 스프링 MVC 의 주요 클래스인 Dispatcher Servlet 의 동작 원리를 알아 봤다. 그럼 이제부터는 스프링 MVC 의 설정 을 알아보도록 하자 설정을 따로 하지 않아도 디스패처 서블릿에 등록 되어 있는 기본 설정이 사용되어 기본값들이 적용이 되어있다. dispatcherServlet.properties 이 값을 사용하지 않고 빈으로 설정파일을 등록해서 MVC 설정을 하는 방법을 알아보도록 하자 이번에 알아 볼 설정 방법은 아주 로우 레벨로 설정하는 법을 배워 볼 것 이다. 저번 시간에 봤엇던 Bean 설정 파일 중에는 ViewResolver 가 있었다. 이제 다른 인터페이스들도 한번 봐보도록 하자. 먼저 핸들러 맵핑 일단 핸들러 맵핑은 어떤 요청이 들어왔.. Dispatcher Servlet 2 디스패처 서블릿이 IOC container 와 어떻게 연결이 되어있는지? 하나를 봐보자면 빈에서 ViewResolver 관련된 애들을 모두 찾아온다. 그 담 viewResolver 목록에 넣어둔다 빈으로 만들어 둔 viewResolver가 없으면 기본 전략을 가져온다. 다른 초기화 메소드들도 마찬가지다 핸들러 맵핑 관련 빈 들을 모두 꺼낸다. 그 후 핸들러 맵핑들을 넣어준다. 여기서도 빈으로 만들어 둔 HanlderMapping 이 없다면 기본 전략을 사용하게 된다 그럼 이제 디스패처 서블릿에서 사용하는 자바 설정파일에서 빈 객체를 만들어 보자 맨 위에 디스패처 전략들을 초기화하는 부분에서 뷰 리조버 쪽을 타고 가보면 빈으로 설정한 뷰리조버가 들어가있는걸 볼 수 있다. Dispatcher Servlet Dispatcher Servlet 의 동작원리 어떻게 dispatcher servlet 을 사용하면 핸들러를 annotation 기반으로 쓸 수 있느냐 에 대해서 알아보자 Dispatcher Servlet 의 doDispatch 메소드가 있다. 대표적인 기능으로는 요청을 분석을 해서 멀티파트 요청인지 로케일은 어떤건지 ,뭐 테마는 어떤건지를 판단을 한다 핸들러를 찾아오는 부분인데 이 요청을 처리 할 수 있는 핸들러를 찾아오는 부분 핸들러들 중에서 이 요청을 처리할 수 있는 핸들러가 있는지를 확인한다. 안으로 들어가보면 이 디스패처가 들고있는 핸들러들 중에서 실질적으로 RequestMappingHandlerMapping 이 우리가 사용하는 어노테이션 뭐 getMapping postMapping 등으로 지정.. 스프링 MVC 연동 Dispatcher Servlet 스프링 MVC 의 가장 핵심적인 클래스인 Dispatcher Servlet 을 알아보자 이 전 글에서는 ContextLoaderListener 를 사용해서 스프링이 제공하는 IOC 컨테이너를 사용하는 방법을 알아봤음 (여기까지는 MVC 가 아니다 ) 이제는 서블릿을 직접 만드는 대신에 핸들러를 이런식으로 쓰고 싶다. MVC 를 쓰려면 이런 핸들러 쪽으로 dispatch 해줄 수 있는 그리고 이런 어노테이션을 이해하고 또한 http 를 return 하는 디스패처 서블릿 을 써야한다. 이전 방식에서는 servlet 들을 하나하나 등록을 해서 사용을 했다. 그걸 지우고 dispatcher servlet 하나를 등록하자 web.xml 에 디스패처 서블릿을 등록한다. 이때 여기다.. 스프링 IOC 컨테이너 연동 서블릿에 스프링 넣어보기 스프링 사용한다는 이야기는 2가지의 경우에 해당 된다. 1. 스프링이 제공하는 IOC 컨테이너를 사용한다. 2. MVC 를 사용한다는 말 먼저 우리가 만든 서블릿에서 스프링이 제공하는 IOC 컨테이너를 활용하는 방법을 알아보자 webmvc 를 추가하게 되면 거기에 해당되는 디펜던시들이 같이 설치 되게 된다 이 후 web.xml 에 스프링이 제공해주는 리스너가 있다. ContextLoaderListener 를 추가 해준다 . 이게 해주는게 뭐냐면 application Context를 서블릿 애플리케이션에 생명주기에 맞춰서 바인딩 해주는 것 (웹 어플리케이션에 등록 되어 있는 서블릿들이 application Context를 사용 할 수 있도록 서블릿 컨텍스트에 등록해준다. 종료 될때.. 서블릿 리스너와 필터 Contents 서블릿 리스너 서블릿 필터 서블릿 리스너 리스너는 서블릿 컨테이너에서 발생하는 이벤트, 서블릿 라이프 사이클의 변화 라던가 여러가지 에트리뷰트에 변화라던가 세션에 변화 . 이런 여러가지 이벤트에 어떤 특정한 코드를 실행해야한다. 그럴 때 사용할 수 있는 개념 크게 서블릿 컨텍스트 수준의 이벤트와 세션 수준의 이벤트로 나눌 수 있다. 서블릿 리스너로 어떤걸 할 수 있냐면 서블릿 컨테이너가 구동(톰캣)이 될 때 db 커넥션을 맺고 그 db 커넥션을 이 서블릿 에플리케이션에서 만든 여러가지 서블릿에 제공할 수 있다. 또한 서블릿이 종료 될 때 db 커넥션을 정리 할 수 도 있다. 서블릿 필터는 어떤 요청이 서블릿에 doGet 메소드등 으로 바로 가게 되는데 doGet 으로 가기 전에 어떤 전처.. 서블릿 애플리케이션 Contents 서블릿이란? 서블릿의 특징 서블릿 컨테이너 서블릿의 생명주기 서블릿이란? MVC 의 기초부터 천천히 알아보도록 하자 스프링 MVC 는 서블릿 기반의 웹 을 쉽게 만들게 해주는 프레임 워크다 이 스프링 MVC 를 알기 위해선 먼저 서블릿에 대해서 알아봐야한다. 그럼 여기서 서블릿은 무엇이냐? JAVA EE 는 웹 애플리케이션 개발용 스펙과 API 를 제공하는데, 그 api 중 하나가 httpServelet 이다. 서블릿의 특징? 서블릿은 프로세스를 만들고 죽이는게 아니라 한 프로세스를 공유하는 스레드를 만들어서 요청을 처리한다. 서블릿 컨테이너란? 서블릿 스펙을 구현한 컨테이너다 톰캣등은 서블릿 컨테이너다 . 이 톰켓등 컨테이너들은 어떻게 서블릿을 초기화 하고 실행하고 사용해야하는지 서블릿.. GCP 인스턴스 Putty 로 외부 접속 Putty Gen 을 켠 후 Generate 클릭 화면에서 마우스를 움직이면 로딩창이 완료된다. 완료되면 키 커멘트에 ID 를 적고 비밀번호를 작성해준다. Save private Key 클릭후 생성된 key 값을 copy 한다. 메타데이터로 이동한다. SSH 키 탭을 누른 후 위에서 Copy 한 Key 값을 넣어준 후 저장한다. 다시 putty 로 돌아와서 SSH 의 Auth 로 들어가서 위에서 Save Private Key 로 저장했던 파일을 불러와 준 후 서버에 접속한다. 등록한 아이디로 로그인을 하면 서버 접속 완료 이전 1 ··· 23 24 25 26 27 다음