본문 바로가기
  • 주니어 개발자의
    RESTful 성장기

Spring Framework10

의존성 관리 이번 시간에는 스프링 부트이 어떻게 의존성을 관리하는 지에 대해서 알아보려고 한다. ◆ 핵심 요소 요소 기능 Starter 스프링이 제공하는 특정 모듈을 사용할 수 있도록 관련된 라이브러리 의존성을 해결한다. AutoConfiguration Starter를 통해 추가한 모듈을 사용할 수 있도록 관련된 Bean 설정을 자동으로 처리. Actuator 스프링 부트로 개발된 시스템을 모니터링할 수 있는 다양한 기능을 제공. 스프링 부트는 프로젝트를 생성할 때(혹은 생성 이후) 사용하고자 하는 모듈을 선택해 의존성을 설정할 수 있다. 기존에 스프링에서는 모듈 하나를 사용하기 위해서 필요한 의존성을 모두 찾아 설정해줘야 했다. 스프링 부트는 starter를 통해 어떤 라이브러리가 필요하고, 어떤 버전을 사용해야 .. 2021. 8. 9.
Spring Boot 프로젝트 구조 지난 게시글에서는 스프링 부트 프로젝트를 생성하는 방법에 대해 알아봤다. 오늘은 생성된 스프링 부트 프로젝트의 구조에 대해서 알아보는 시간을 가져보자! • 구조 1. src/main/java 일반적인 .java 소스들이 위치한다. 2. src/main/resources 자바 소스를 제외한 XML, properties 파일들이 등록된다. src/main/resources 하위에는 static, templates라는 폴더 2개와 application.properties라는 프로퍼티 파일이 하나 존재한다. 1. src/main/resources/static HTML과 같은 정적 웹 리소스가 등록되는 폴더이다. 2. src/main/resources/templates Thymeleaf와 같은 템플릿 기반 웹 리.. 2021. 8. 7.
[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.
@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.