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
'⚙️ Back-end > Spring' 카테고리의 다른 글
[Spring Boot] 1주차 스터디 : 1장 인텔리 제이로 스프링 부트 시작하기 (0) | 2025.01.14 |
---|---|
Springboot [5] : 데이터베이스 개념 (0) | 2024.03.15 |
Springboot [4] : 테스트 (3) | 2024.03.05 |
Springboot [3] : 스프링부트 구조 이해하기 (0) | 2024.03.04 |
Springboot [1] : 환경설정 및 예제 (0) | 2024.03.02 |