Baeldung - Creating a Web Application with Spring 5

sycho·2024년 4월 5일
0

Baeldung - Spring REST

목록 보기
1/3

Baeldung의 이 글을 정리 및 추가 정보를 넣은 글입니다.

1. Overview

  • 이 시리즈에서는 REST API를 도입한 web application을 Spring에서 어떻게 개발하는지에 대해 알아볼거다. 이를 본격적으로 들어가기 전에 이 글에서는 web application을 만들기 위한 기본 설정을 어떻게 하는지 알아볼 것이다.

  • Spring Boot를 사용하는 법과 순수 Spring을 사용하는 법, 이 2가지를 알아볼 것이다.

2. Setting Up Using Spring Boot

  • Spring Boot의 경우 starter을 활용하면 쉽게 설정이 가능하다. 정확히는 starter-web.

2.1 Maven Dependency

  • Maven을 쓰는 경우 다음과 같이 하면 된다. Gradle도 크게 다른게 없다는 점 참고.
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
  • 이렇게 설정을 할 경우, spring-web, spring-webmvc는 물론 tomcat starter도 제공해 web application을 실행할 임베드된 tomcat server도 제공된다는 점 참고.

2.2 Creating a Spring Boot Application

  • 이후의 웹 애플리케이션 실행은 알다시피, @SpringBootApplication이 annotate된 main clas를 만드는 것이다.
@SpringBootApplication
public class SpringBootRestApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringBootRestApplication.class, args);
    }
}
  • 아직 Spring Boot에 대해 자세히 설명한 적이 없는데, 위와 같이 하면 알아서 configuration도 하고 필요한 component bean들도 생성한다. 위 annotation에 대한 설명은 이 글 참고

  • 위에서 자동으로 configuration에 필요한 bean들을 생성해주긴하나, 프로그래머가 거기에 더불어 직접 configuration을 추가하는 것이 가능하다. 아니면 자동 configuration에서 설정하지 않는 bean들을 따로 정의하거나. 그 경우 @Configuration annotation을 덧붙여가지고 @Bean method들을 만들면 된다. @Configuration으로 annotate된 class에도 @Component가 달려있기 때문에 위의 @SpringBootApplication@ComponentScan에서 탐색이 가능하기에 이 방식이 가능하다는 점 참고.

@Configuration
public class WebConfig {

}

3. Setting Up Using spring-webmvc

  • 순수 Spring으로 설정하려고 하는 경우 좀 골치아파진다.

3.1 Maven Dependencies

  • 먼저 starter을 쓰지 못하고, 대신 직접 spring-webmvc를 dependency에 추가해야 한다. Gradle도 유사하다는 점 참고.
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>5.3.3</version>
</dependency>

3.2 The Java-based Web Configuration

  • 이후 3.2와 3.3부분은 이전에 Spring MVC 시리즈에서 배웠던 내용과 비슷하게 코딩을 하면 된다.

  • 자세한 설명은 이 글을 참고하면 된다.

3.3 The Initializer Class

  • 마찬가지로 위에 소개한 링크를 참고.

4. XML Configuration

  • WebConfig class를 만드는 대신에 다음과 같은 xml을 만들어도 동작이 가능하다.
<context:component-scan base-package="com.baeldung.controller" />
<mvc:annotation-driven />
profile
안 흔하고 싶은 개발자. 관심 분야 : 임베디드/컴퓨터 시스템 및 아키텍처/웹/AI

0개의 댓글