[스프링부트] @SpringBootApplication

손성우·2022년 7월 21일

스프링부트

목록 보기
1/4

@SpringBootApplication

메인 메서드가 선언된 클래스에 선언된다.

HelloSpringApplication.java

@SpringBootApplication
public class HelloSpringApplication {

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

}

@SpringBootApplication

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(excludeFilters = { @Filter(type = FilterType.CUSTOM, classes = TypeExcludeFilter.class),
		@Filter(type = FilterType.CUSTOM, classes = AutoConfigurationExcludeFilter.class) })
public @interface SpringBootApplication {
	. . .
}

@SpringBootApplication코드 안에서 중요하게 봐야될건
@ComponentScan, @EnableAutoConfiguration다.

@ComponentScan

@ComponentScan은 @component 어노테이션 및 @Service, @Repository, @Controller 등의 어노테이션을 스캔하여 Bean으로 등록해주는 어노테이션입니다. 중요한 것은. @SpringBootApplication가 설정된 클래스의 동일 및 하위 패키지만 자동으로 빈으로 등롷개준다.(다른 패키지까지 빈으로 자동으로 설정되게 변경할 수 있다.)

@EnableAutoConfiguration

@EnableAutoConfiguration은 사전에 정의한 라이브러리들을 Bean으로 등록해 주는 어노테이션입니다.
사전에 정의한 라이브러리들 모두가 등록되는 것은 아니고 특정 Condition(조건)이 만족될 경우에 Bean으로 등록합니다.

profile
백엔드 개발자를 꿈꾸며 공부한 내용을 기록하고 있습니다.

0개의 댓글