programing

Java-config 클래스를 XML-config로 가져와서 두 컨텍스트에 빈이 있도록 하는 방법은 무엇입니까?

bestprogram 2023. 8. 15. 11:16

Java-config 클래스를 XML-config로 가져와서 두 컨텍스트에 빈이 있도록 하는 방법은 무엇입니까?

@Configuration java-config 클래스를 XML 구성으로 부트스트랩해야 하는 프로젝트가 있습니다.

그러기 위해서는 (@Configuration으로 주석이 달린 클래스의 bean 정의와 함께) 다음 bean 정의도 포함해야 한다는 것을 읽고 있습니다.

<bean class="org.springframework.config.java.process.ConfigurationPostProcessor" />

그러나 다음과 같은 오류가 발생합니다.

Caused by: java.lang.ClassNotFoundException: org.springframework.config.java.process.ConfigurationPostProcessor

어디선가 항아리를 잃어버린 것 같은데, 여러 웹 검색을 해보니 아직 답이 나오지 않았습니다.어떤 도움이라도 주시면 대단히 감사하겠습니다.감사해요.

편집: 분명히, 저는 더 이상 최신이 아닌 오래된 문서를 읽고 있었습니다.제가 뒤로 물러나겠습니다.내 프로젝트에는 이전 XML 기반 구성이 포함되어 있습니다.최신 코드는 모두 'Java-config'를 사용하고 있습니다.그 말처럼, 문맥은 분명히 완전히 분리되어 있습니다.java-config 클래스를 XML 구성으로 '가져오기'하여 두 컨텍스트 모두 특정 빈을 가지고 있습니다.내가 그걸 어떻게 하는지 아는 사람?

이것은 실제로 꽤 단순하게 끝났습니다.Java-config 정의를 xml-config로 가져오려면 Java-config 클래스를 XML-config 내의 bean으로 정의하기만 하면 됩니다.여분의 병은 필요 없습니다.

@Configuration
public class SomeJavaConfig {

    @bean
    ... [bean definition]
}

XML-config에서 이 클래스를 빈으로 정의합니다.

<!-- needed to pick up the annotated java-config -->
<context:annotation-config />

<!-- Importing java-config class, which are annotated with @Configuration -->
<bean name="SomeJavaConfig" class="[fully qualified path].SomeJavaConfig" />

다른 컨텍스트의 일부일 수도 있는 XML-config는 이제 JavaConfig 클래스 내에서 정의된 모든 bean 정의를 가집니다.

업데이트됨 - 답변에 아래에 Alan Franzoni의 의견을 포함합니다.

대신annotation-config사용할 수 있습니다.component-scan그러면 XML에 Configuration Bean을 포함할 필요가 없습니다.

<context:component-scan base-package="[fully qualified package path]" />

자세한 내용은 <context:annotation-config>와 <context:component-scan>차이를 참조하십시오.

있어야 할 위치:

spring-javaconfig-<version>.jar

언급URL : https://stackoverflow.com/questions/13254779/how-to-import-java-config-class-into-xml-config-so-that-both-contexts-have-beans