SpringBoot 프로젝트를 생성하면 메인 클래스와 함수가 자동으로 생성됩니다. 그리고 그 클래스에는 @SpringBootApplication 어노테이션이 달려있습니다.
@SpringBootApplication
public class MainApplication{
public static void main(String[] args){
SpringApplication.run(TestingApplication.class,args);
}
}
아래의 코드는 @SpringBootApplication 입니다
@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 {...}
@Target은 어노테이션이 적용될 수 있는 위치를 사용자가 정하는 것을 말합니다
@Target({ElementType.XXXX, ElementType.XXXX,…}) 와 같이 여러개의 타입을 지정하는 방법도 있습니다
이중 TYPE이란 클래스/생성자/메소드 등등에 적용되는 것을 말합니다