스프링 주요 애너테이션 이해

도람·2025년 6월 16일
post-thumbnail

@SpringBootApplication

  • SpringBootDeveloperApplication.java에 들어간다.

그럼 다음과 같이 되어있는데, @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 // 자동으로 등록된 빈을 읽고 등록

이 세 가지 애너테이션은 스프링 부트의 특징을 잘 나타내는 애너테이션이다.

@SpringBootConfiguration

  • 이 애너테이션은 스프링 부트 관련 설정을 나타내는 애너테이션이다.
  • @Configuration을 상속해서 만든 애너테이션이다.

@ComponentScan

  • 사용자가 등록한 빈을 읽고 등록하는 애너테이션이다.
  • @Component라는 애너테이션을 가진 클래스들을 찾아 빈으로 등록한다.
  • 빈을 등록할 때, 전부 @Component를 감싸는 애너테이션이 있는데, 다른 애너테이션도 많이 사용하게 된다.

빈 애너테이션
@Configuration : 설정 파일을 등록한다
@Repository : ORM 매핑
@Contoller, @RestController : 라우터
@Service : 비지니스 로직

  • ORM :
    ORM은 Object Relational Mapping의 약자로, 프로그래밍 언어의 객체와 관계형 데이터베이스의 데이터를 자동으로 매핑해주는 도구이다.

@EnableAutoConfiguration

  • 스프링 부트에서 자동 구성을 활성화하는 애너테이션이다.
  • 스프링 부트 서버가 실행될 때, 스프링 부트의 메타 파일을 읽고 정의된 설정들을 자동으로 구성하는 역할을 수행한다.
  • 전 포스트에 올린, spring.factories에 있는 클래스들이 모두 @EnableAutoConfiguration을 사용할 때 자동 설정된다.

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

profile
정도를 걷는 엔지니어

0개의 댓글