복붙노트

[SPRING] @Configuration 클래스에서 @PostConstruct의 예상되는 동작은 무엇입니까?

SPRING

@Configuration 클래스에서 @PostConstruct의 예상되는 동작은 무엇입니까?

Spring java-config (@Configuration 사용)를 사용하여 bean을 정의하는 프로젝트를 재사용하고 있으며, 하나의 클래스에는 @PostConstruct init 메소드가 있습니다.

여기서 예상되는 동작은 무엇입니까?이 메서드는 언제 호출됩니까? 콩과 관련해서는. 나. 이 메소드는 마치 구성 클래스가 bean 인 것과 똑같이 동작합니까 (사실은 하나입니까?).

운영 체제에 따라 구성 클래스에 @Autowired 인 Bean이 초기화되기 전에 호출 될 수 있으므로 불완전한 종속성에 대한 작업이 끝납니다.

해결법

  1. ==============================

    1.@Configuration에 대해서조차도 @PostConstruct는 예상대로 동작합니다. 클래스의 종속성이 주입 된 후에 호출됩니다. 이것은 다소 혼란 스럽지만 (@Configuration 클래스가 bean이라는 사실과 함께), 정확합니다.

    @Configuration에 대해서조차도 @PostConstruct는 예상대로 동작합니다. 클래스의 종속성이 주입 된 후에 호출됩니다. 이것은 다소 혼란 스럽지만 (@Configuration 클래스가 bean이라는 사실과 함께), 정확합니다.

    현재의 문제는 스프링 보안 oauth의 도움으로 소개 된 숨겨진 순환 의존성이었습니다.이 논의의 범위를 벗어나는 회선 집합입니다.

    @PostConstruct는 의존성 빈이 순환 종속성의 경우에만 완전히 초기화되지 않으면 호출 될 수 있습니다. setter 또는 필드 주입을 통해 종속성이 제공된 경우 순환 종속성은보고되지 않으며 불완전한 빈이 사용됩니다.

    또한 여기서 주목해야 할 점은 순환 의존성 처리가 OS (JVM 또는 JRE 차이점을 의미)에 의존한다는 것입니다.

  2. from https://stackoverflow.com/questions/24548004/what-is-the-expected-behaviour-of-postconstruct-in-configuration-classes by cc-by-sa and MIT license