
그럼 다음과 같이 되어있는데, @SpringBootApplication 애너테이션을 추가하면
스프링 부트 사용에 필요한 기본 설정을 해준다. SpringApplication.run() 메서드는 애플리케이션을 실행한다.
package me.nahyung.springboot3_developer;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Springboot3DeveloperApplication {
public static void main(String[] args) {
SpringApplication.run(Springboot3DeveloperApplication.class, args);
}
첫 번째 인수: 스프링 부트 애플리케이션의 메인 클래스로 사용할 클래스
두 번째 인수: 커맨드 라인의 인수를 전달.
@SpringBootApplicaion 에 컨트롤을 누른 후 마우스를 올리면 애너테이션 구성이 다음과 같이 나타난다.
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration // 스프링 부트 관련 설정
@EnableAutoConfiguration
@ComponentScan(excludeFilters = {@org.springframework.context.annotation.ComponentScan.Filter(type = org.springframework.context.annotation.FilterType.CUSTOM, classes =
{org.springframework.boot.context.TypeExcludeFilter.class}),@org.springframework.context.annotation.ComponentScan.Filter(type = org.springframework.context.annotation.FilterType.CUSTOM, classes =
{org.springframework.boot.autoconfigure.AutoConfigurationExcludeFilter.class})})
public @interface SpringBootApplication
여기서 몇 애너테이션의 의미는 다음과 같다.
@SpringBootConfiguration // 스프링 부트 관련 설정
@ComponntScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, //사용자가 등록한 빈을 읽고 등록
@EnableAutoConfiguration // 자동으로 등록된 빈을 읽고 등록
이 세 가지 애너테이션은 스프링 부트의 특징을 잘 나타내는 애너테이션이다.
빈 애너테이션
@Configuration : 설정 파일을 등록한다
@Repository : ORM 매핑
@Contoller, @RestController : 라우터
@Service : 비지니스 로직
- ORM :
ORM은 Object Relational Mapping의 약자로, 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 도구이다.
해당 글은 다음 도서의 내용을 정리하고 참고한 글임을 밝힙니다.
신선영, ⌜스프링 부트 3 벡엔드 개발자 되기 - 자바 편⌟, 골든래빗(주), 2023, 384쪽