Super Kawaii Cute Cat Kaoani
본문 바로가기
⚙️ Back-end/Spring

Springboot [2] : 스프링부트 코드 이해하기

by wonee1 2024. 3. 3.
728x90

* 책 스프링부트 3 백엔드 개발자 되기 자바편을 공부하면서 정리한 내용입니다
 

@SpringBootApplication 

 

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;


@SpringBootApplication
public class SpringBootDeveloperApplication {
    public static void main(String[] args) {
        SpringApplication.run(SpringBootDeveloperApplication.class, args);
    }
}

 

  • 이 클래스는 자바의 main()메서드와 같은 역할을 한다. 
  • @SpringBootApplication 애너테이션을 추가하면 스프링부트 사용에 필요한 기본 설정을 해준다.

 

  • SpringApplication.run() 메서드는 애플리케이션을 실행한다.  

-> 첫번째 인수는 스프링부트 3 애플리케이션의 메인 클래스로 사용할 클래스 
    두번째 인수는 커맨드 라인의 인수들을 전달 
 
 
*애너테이션이란? 
주석처럼 프로그램에 영향을 미치지 않으면서, 유용한 정보를 제공하는 것.
 
 
 

@SpringBootApplication의 의미

 

  • 핵심 애너테이션

 

  • @SpringBootConfiguration

       스프링부트 관련 설정을 나타내는 애너테이션
 
 

  • @ComponentScan

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

애너테이션명 설명 
@Configuration  설정 파일 등록
@Repository  ORM 매핑 
@Controller, @RestController 라우터
@Service 비즈니스 로직 

 
 

  • @EnableAutoConfiguration

      자동으로 등록된 빈을 읽고 등록하는 애너테이션 
       스프링부트서버가 실행될 때 스프링부트의 ㅔㅁ타 파일을 읽고 정의된 설정들을 자동으로 구성하는 역할을 한다. 
 
 
 
*빈이란
스프링(Spring) 컨테이너가 관리하는 자바 객체
 
 

TestController 

 

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class TestController {
    @GetMapping("/test")
    public String test() {
        return "Hello, world!";
    }
}

 
 

  • @RestController는 라우터 역할을 하는 애너테이션이다.
  • 라우터란 HTTP 요청과 메서드를 연결하는 장치를 말한다. 
  • 이 애너테이션이 있어야 클라이언트의 요청에 맞는 메서드를 실행할 수 있다. 

이 코드의 경우 TestController를 라우터로 지정해 /test라는 GET 요청이 왓을 때 test() 메서드를 실행하도록 구성하였다. 
 
 
@Controller 애너테이션이 @ComponentScan을 통해 빈으로 등록되는 이유
-> @Controller 애너테이션에서 @Component 애너테이션을 가지고 있기 때문이다.
 
 


 

용어 정리 

 
 
다른 객체를 직접 생성하거나 제어하는 것이 아니라 외부에서 관리하는 객체를 가져와 사용하는 개념 
->IOC 제어의 역전
 
IoC를 구현하기 위해서 사용하는 방법, 외부에서 객체를 주입받아 사용하는 것 
->DI 
 
 
 
 

728x90