learn/spring

어노테이션(Annotation) - Spring Boot 관련

사겅이 2023. 9. 26. 13:45

@SpringBootApplication

스프링 부트 애플리케이션을 시작할 때 사용

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

 

@RestController

RESTful 웹 서비스에서 JSON 또는 XML 형식의 응답을 반환
@Controller와 @ResponseBody 어노테이션의 조합으로 구성

@RestController
public class MyRestController {

    @GetMapping("/hello")
    public String hello() {
        return "Hello, World!";
    }

    @GetMapping("/user")
    public User getUser() {
        User user = new User("John", "Doe");
        return user;
    }
}

 

@SpringBootConfiguration

스프링 부트 애플리케이션의 구성 클래스를 나타냄
스프링의 표준 @Configuration 어노테이션의 대안으로 사용되며, 애플리케이션의 구성을 정의

@SpringBootConfiguration
public class MyConfiguration {
    @Bean
    public MyBean myBean() {
        return new MyBean();
    }
}

 

@EnableAutoConfiguration

스프링 부트 애플리케이션에서 자동 구성을 활성화하는 데 사용
애플리케이션의 클래스패스와 설정 정보를 기반으로 빈(bean)을 자동으로 구성

  • 자동 구성: 클래스패스 상에 존재하는 다양한 라이브러리 및 라이브러리의 설정 정보를 분석하여 필요한 빈을 자동으로 구성하여 개발자는 별도의 설정 없이도 애플리케이션을 빠르게 구축
  • 옵트아웃 기능: 특정 자동 구성을 비활성화하려면 spring.autoconfigure.exclude 프로퍼티를 설정하여 해당 자동 구성 클래스를 제외시킬 수 있음
  • 커스텀 자동 구성: 개발자는 필요에 따라 커스텀 자동 구성 클래스를 작성하여 자신만의 빈을 자동으로 구성할 수 있음
@SpringBootApplication
@EnableAutoConfiguration
public class MyApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args);
    }
}