programing

Spring Boot Application 클래스에 @Configuration 주석이 필요한 이유는 무엇입니까?

runtoyou 2023. 2. 13. 23:11
반응형

Spring Boot Application 클래스에 @Configuration 주석이 필요한 이유는 무엇입니까?

Spring Framework에 대해 배우고 있지만 정확히 무엇을 알고 있는지 이해할 수 없습니다.@Configuration주석 수단과 주석을 달아야 하는 클래스에 대해 설명합니다.Spring Boot 문서에는 Application 클래스는 다음과 같이 기술되어 있습니다.@Configuration학급.

스프링 부트는 Java 기반 구성을 선호합니다.XML 소스를 사용하여 Spring Application.run()을 호출할 수 있지만 일반적으로 기본 소스가 @Configuration 클래스일 것을 권장합니다.

에 대해 알아보려고 합니다.@Configuration수업에 주석을 다는 것은@Configuration이 클래스는 Spring IoC 컨테이너에서 빈 정의 소스로 사용할 수 있음을 나타냅니다.

그렇다면 이 어플리케이션클래스는 어떻게 bean 정의의 소스일까요?

@SpringBootApplication // same as @Configuration @EnableAutoConfiguration @ComponentScan
public class App 
{
    public static void main(String[] args) throws Exception {
        SpringApplication.run(App.class, args);    
    }
}

나는 봄과 관련된 대부분의 다른 기본적인 개념들을 거의 이해했지만, 나는 그것의 목적을 이해할 수 없다.@Configuration또는 어떤 클래스가 필요한가?@Configuration수업?누가 좀 도와주세요.감사합니다!!

제대로 이해하셨네요.

@설정

@Configuration는 xml 파일의 아날로그입니다.이러한 클래스는 bean 정의의 소스입니다.@Bean주석입니다.

@Configuration다음과 같습니다.

  • 에서 주석이 달린 클래스를 이미 통과했다면 필수가 아닙니다.sources호출할 때의 파라미터SpringApplication.run()방법
  • 주석 첨부 클래스를 명시적으로 전달하지 않았지만, 이 클래스가 패키지에 포함되어 있는 경우 필수입니다.@ComponentScan주 구성 클래스의 주석입니다.

가독성을 위해 명시적으로 전달된 클래스는sources어쨌든 주석을 달 수 있다@Configuration- 의도를 좀 더 명확하게 보여주기 위해서입니다.

당신의 현재 클래스는 사실 콩 정의의 소스가 아닙니다. 왜냐하면 그것은 아무것도 없기 때문입니다. 하지만 만약 당신이 그것을 가지고 있다면@Bean주석이 달린 방법이라면, 스프링은 그걸 볼 수 있을 거야.

@EnableAutoConfiguration

유무에 관계없이 사용 가능@Configuration클래스 패스에 있는 것으로 판단하여 기본적인 인프라스트럭처를 설정하도록 Spring에게 지시합니다.이 작업은 의 값에서 파생된 이른바 Import 클래스를 호출함으로써 수행됩니다.@Import라는 주석@EnableAutoConfiguration포함한다.하나의 클래스에만 주석을 달아야 합니다.@EnableAutoConfiguration복제하는 건 아무 소용이 없어요

다음 답변은 Spring Boot 초기화 프로세스를 이해하는 데도 도움이 될 수 있습니다.Spring Boot에서 실제로 SpringMVC용 디스패처 서블릿을 등록하는 코드는 무엇입니까?

Boot의 인 것 .@SpringBootApplication은 자동으로 됩니다.@ConfigurationSpring Boot의 주요 목표 중 하나는 추가 이동 없이 빠르게 애플리케이션을 만들 수 있도록 하는 것입니다.따라서 응용 프로그램 클래스에 bean 정의를 직접 추가할 수 있으므로 구성을 유지하기 위해 추가 클래스를 만들 필요가 없습니다.수업이 딱 한 개만 있으면 끝이에요.

언급URL : https://stackoverflow.com/questions/39247487/why-spring-boot-application-class-needs-to-have-configuration-annotation

반응형