programing

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

codeshow 2023. 8. 15. 11:51
반응형

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

우리는 spring java-config (@Configuration 사용)로 콩을 정의하는 프로젝트를 재사용하고 있으며, 그러한 클래스 중 하나에서 그것을 가지고 있습니다.@PostConstructinit 방식

여기서 예상되는 동작은 무엇입니까? 언제 이 방법이 실행됩니까?콩에 관해서 말하자면, 그것은.즉, 이 메서드는 구성 클래스가 빈인 것처럼 정확하게 동작합니까(그리고 실제로 하나입니까?)?

우리가 관찰한 것은, 운영 체제에 따라, 그것은 콩보다 먼저 실행될 수 있다는 것입니다.@Autowired구성 클래스로 초기화되므로 불완전한 종속성으로 작동합니다.

을 위해서라도@Configuration,@PostConstruct예상대로 동작 - 클래스의 종속성이 주입된 후 호출됩니다.비록 이것이 약간 혼란스럽지만 (그것과 함께.@Configuration수업은 콩입니다), 그것은 맞습니다.

당면한 문제는 spring-security-oauth의 도움으로 도입된 숨겨진 순환 종속성이었습니다. 이는 이 논의의 범위를 벗어나는 복잡한 구성 집합입니다.

그렇게,@PostConstruct순환 종속성의 경우에만 종속 빈이 완전히 초기화되지 않은 경우 호출할 수 있습니다.세터 또는 필드 주입을 통해 종속성이 제공되면 순환 종속성이 보고되지 않고 대신 불완전한 콩이 사용됩니다.

또한 여기서 주목할 점은 순환 종속성 처리가 OS에 따라 달라지는 것처럼 보인다는 것입니다(즉, 일부 JVM 또는 JRE 차이).

언급URL : https://stackoverflow.com/questions/24548004/what-is-the-expected-behaviour-of-postconstruct-in-configuration-classes

반응형