Spring19 [Spring 설정] WebMvcConfigurer 커스텀 설정 1. @EnableWebMvc, WebMvcConfigurer @EnableWebMvc 어노테이션을 이용해 MVC 설정을 하는 경우, 일반적으로 WebMvcConfigurer 인터페이스를 상속받은 @Configuration 클래스를 구현한다(MVC 설정을 하나의 클래스에서 모을 수 있기 때문). WebMvcConfigurer 인터페이스는 10개가 넘는 메서드를 정의하고 있으며, 이를 모두 구현해서 사용하는 경우는 드물다. 따라서, WebMvcConfigurer 인터페이스를 구현하고 있는 WebMvcConfigurerAdapter 클래스를 상속받아 필요한 메서드만 구현하는 것이 일반적이다. @EnableWebMvc 클래스와 WebMvcConfigurer 구현 클래스를 따로 구현할 수 있다. 2. View .. 2021. 5. 19. Exception 처리 컨트롤러에서 메소드를 실행하는 과정에서 Exception이 발생한다면 어떻게 될까? 아마도 에러 메시지를 담은 전형적인 에러 화면을 보여주게 될 것이다. 하지만 실제 서비스를 제공한다면, 이러한 화면을 사용자에게 제공해서는 안 될 것이다. 따라서, 오늘은 스프링에서 Exception이 발생한 경우 이를 처리하는 방법에 대해 알아보고자 한다. Spring에서는 에러 처리와 관련해 크게 3가지의 방법을 제공하고 있다. 1. @ExceptionHandler 어노테이션을 사용한 Exception 처리 2. @ControllerAdvice 어노테이션을 사용한 공통 Exception 처리 3. @ResponseStatus 어노테이션을 사용한 Exception 처리 1. @ExceptionHandler을 사용한 Ex.. 2021. 5. 18. [Spring 설정] 컨트롤러 경로 매핑과 디폴트 서블릿 설정 1. 서블릿 매핑에 따른 컨트롤러 매핑 및 디폴트 서블릿 설정 사진 1에서처럼 servlet-mapping의 url-pattern을 설정해주면 해당 경로로 들어오는 요청에 대해서 서블릿을 매핑해준다는 것을 의미한다. url-pattern은 여러 개를 등록할 수 있다. 위 사진과 같이 url-pattern을 '/' 으로 설정하게 되면 jsp 요청을 제외한 나머지 모든 요청을 DispatcherServlet이 받게 된다. http://localhost:8080/springMaster/user/list http://localhost:8080/springMaster/bootstrap/bootstrap.css 이 두개의 요청은 모두 DispatcherServlet이 받게 된다. /user/list 경로에 대한 컨.. 2021. 5. 17. [Spring 설정] 스프링 MVC 다음에서 설명하는 설정들은 dispatcher 서블릿 설정 파일에서 설정해준다. 스프링 MVC를 설정하기 위해서는 최소한 다음 구성 요소를 빈 객체로 등록해줘야 한다. 1. HandlerMapping 구현 객체 2. HandlerAdapter 구현 객체 3. ViewResolver 구현 객체 이 중 1번과 2번인 HandlerMapping, HandlerAdapter는 태그를 이용하면 설정이 끝난다. 그러므로 3번 ViewResolver만 설정해주면 된다. 태그는 RequestMappingHandlerMapping과 RequestMappingHandlerAdapter 클래스를 빈으로 등록해준다. 이 두 클래스는 @Controller 클래스를 컨트롤러로 사용할 수 있도록 해준다. InternalResour.. 2021. 5. 9. [Spring 설정] DispatcherServlet 1-1. XML 설정 DispatcherServlet은 내부적으로 스프링 컨테이너를 생성한다. 따로 초기화를 해주지 않으면 웹 어플리케이션의 /WEB-INF/ 디렉터리에 위치한 [서블릿 이름]_servlet.xml 파일을 스프링 설정 파일로 사용한다. 한 개 이상의 설정 파일을 사용해야 하거나 설정 파일 이름이 [서블릿 이름]_servlet.xml 형식이 아닌 경우, contextConfigLocation 초기화 파라미터로 설정 파일을 지정하면 된다. contextConfigLocation 의 초기화 파라미터인 설정 파일은 콤마, 공백, 탭, 줄 바꿈, 세미콜론을 이용해 구분한다. 각 설정 파일의 경로는 웹 어플리케이션의 루트 디렉토리를 기준으로 한다. "file:"이나 "classpath:" 접두어를 .. 2021. 5. 9. 시작 페이지 설정하기! 스프링 프로젝트를 생성해 서버까지 구동했지만, 도저히 "localhost:8080" 으로 접속해도 프로젝트 메인화면으로 갈 수가 없다면...! 아래 순서대로 진행해보시면 됩니다! 1. [사진 1.2] 에서와 같이 web.xml 파일에 welcome-file-list를 설정해줘야 합니다. welcome-file-list는 Document Root를 기준으로 파일을 탐색하게 됩니다. 저의 프로젝트 경우, [사진 1.1] 과 같이 구조를 이루고 있습니다. 즉, Document Root는 src/main/webapp이 됩니다. 저는 /WEB-INF/view 에 위치한 hello.jsp 파일을 시작 페이지로 설정하고자 했으며, [사진 1.2] 에서 4번째 welcome-file에 해당 파일의 경로를 정확하게 기재.. 2021. 4. 28. Spring MVC의 동작 원리 Spring MVC의 기본 동작 흐름 [Web Browser → DispatcherServlet]: request 요청 [HandlerMapping]: 요청 URL을 어떤 Controller가 처리할지 결정 [DispatcherServlet → HandlerAdapter]: 처리 요청 [HandlerAdapter → Controller]: 처리 요청을 변환해 전달, [Controller]: 요청 실행 [Controller → HandlerAdapter]: 실행에 따른 결과 반환 [HandlerAdapter → DispatcherServlet]: Controller 에서의 실행 결과를 ModelAndView로 변환해 리턴 [ViewResolver]: 실행 결과를 보여줄 View 검색 [DispatcherS.. 2021. 4. 19. AOP 시리즈 1편 - AOP가 뭔데? Spring을 배우고 사용하는 개발자들은 모두 Spring의 특징 중 하나로 AOP가 꼽히는 것을 알 수 있다. 하지만 도대체 AOP가 무엇인지 정확하게 알지 못하는 경우가 태반이다. 그래서 오늘은 AOP를 파헤쳐보는 시간을 가져보도록 하겠다! AOP (Aspect Oriented Programming) 문제를 바라보는 관점을 기준으로 프로그래밍하는 기법을 말한다. 문제를 해결하기 위한 핵심 비즈니스 로직과 전체적으로 적용이 되어야 하는 공통 로직을 기준으로 프로그래밍해 공통으로 사용되는 모듈을 여러 코드에 적용할 수 있도록 해준다! 공통 기능 코드 public void CoreLogic() { // 핵심 비즈니스 로직 } 공통 기능 코드 위처럼 핵심 비즈니스 로직을 구현한 코드에서는 공통 기능을 하는 .. 2021. 3. 31. @Annotation을 이용한 의존성 주입! @Autowired - 생성자, 필드, 메서드에 적용이 가능하다. - 타입을 기준으로 Bean 객체를 선택한다. - setter 메서드뿐만 아니라 임의의 메서드에 적용해도 의존 객체를 자동으로 연결해준다. public class SampleService { // Bean으로 등록되어 있는 객체 private AClientFactory aClientFactory; private BClientFactory bClientFactory; @Autowired // 타입을 기반으로 자동으로 의존성을 주입한다. public void init(AClientFactory aClientFactory, BClientFactory bClientFactory) { this.aClientFactory = aClientFactor.. 2021. 3. 25. 이전 1 2 3 다음