2.4 스프링 부트 3 코드 이해하기

SummerToday·2024년 1월 28일
1
post-thumbnail
post-custom-banner

@SpringBootApplication 이해하기

@SpringBootApplication // 스프링 부트 사용에 필요한 기본 설정을 해줌.
public class example {
  public static void main(Stringp[} arg) {
    SpringApplication.run(example.class, args); // 스프링 애플리케이션 실행
    // 첫번째 인수: 스프링 애플리케이션의 메인 클래스로 사용할 클래스 
    // 두번째 인수: 커맨드 라인에서 입력 받게 되는 인수들
  }
}

위 클래스는 자바의 main() 메소드와 같은 역할을 한다. 즉, 여기서 스프링 부트가 시작이 된다.

  • @SpringBootApplication 구성 (Ctrl 누르고 해당 애너테이션 클릭시 상세정보 확인 가능)

    핵심 3가지 애너테이션

    • @SpringbootConfiguration
      스프링 부트 관련 설정을 나타냄. @Configuration을 상속해서 만든 애너테이션.
      개발자가 직접 사용은 하지 않는다.

    • @ComponentScan
      사용자가 등록한 빈을 읽고 등록하는 애너테이션. @Component 애너테이션을 가진 클래스들을 찾아 빈으로 등록하는 역할을 한다.

      모든 빈에 @Component만 사용하는 것이 아니라 용도에 따라 다음 애너테이션들도 많이 사용한다. 또한 다음 애너테이션들은 모두 @Component 애너테이션을 갖고 있다.
      빈이 무슨 역할을 하는지 명확하게 구분하기 위해 다른 이름으로 덮어 두었기 때문이다.

    • @EnableAutoConfiguration
      스프링 부트에서 자동 구성을 활성화하는 애너테이션. 스프링 부트 서버가 실행될 때 스프링 부트의 메타 파일을 읽고 정의된 설정들을 자동으로 구성하는 역할을 한다.

테스트 컨트롤러 살펴보기

  • @RestController
    라우터 역할을 하는 애너테이션. 라우터란 HTTP 요청과 메소드를 연결하는 장치이다.
    즉, 요청에 맞는 메소드를 연결시켜주는 애너테이션이다.
    위 클래스는 TestController를 라우터로 지정해 /test라는 GET 요청이 왔을 때 test() 메소드를 실행하도록 구성한 것이다.

    cf) @RestController와 @Component는 애너테이션 용어가 다른데 어떻게 @Component 처럼 취급을 하는가?

    • @RestController 상세 구성
      위 코드를 보면 @Controller + @ResponseBody가 @RestController 애너테이션인 것을 알 수 있다.
      • @Controller 상세 정보
        위 코드를 보면 @Component 애너테이션이 존재한다. 따라서 @RestController 애너테이션은 @ComponentScan을 통해 빈으로 등록될 수 있다.

정리

  • 스프링
    : 엔터프라이즈 애플리케이션을 쉽게 개발할 수 있도록 도와주는 프레임워크

  • IoC
    : 제어의 역전

  • DI
    : 의존성 주입

  • SpringBootApplication
    : 스프링 부트 관련된 설정을 하는 @SpringBootConfiguration, 사용자가 등록한 빈을 읽고 등록하는 @ComponenetScan, 자동 설정으로 등록되는 빈을 읽고 등록하는 @EnableAutoConfiguration으로 이루어져있다.

  • @Component
    : 해당 애너테이션이 있는 클래스는 빈으로 등록 되며 @Controller, @RestController, @Configuration, @Repository, @Service 모두 @Component 애너테이션을 가지고 있다. 때에 따라 알맞은 애너테이션을 선택해야 한다.




해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다. 신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽
profile
IT, 개발 관련 정보들을 기록하는 장소입니다.
post-custom-banner

0개의 댓글