복붙노트

[SPRING] 두 컨텍스트에 빈이 포함되도록 Java-config 클래스를 XML-config로 가져 오는 방법은 무엇입니까?

SPRING

두 컨텍스트에 빈이 포함되도록 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'를 사용합니다. 그렇게 말하면 문맥은 분명히 완전히 별개입니다. XML 컨텍스트에 java-config 클래스를 '가져 오기'하고 싶으므로 두 컨텍스트 모두에 특정 bean이 있습니다. 아무도 내가 어떻게 할 수 있는지 안다?

해결법

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

    1.이것은 실제로 상당히 간단하게 끝났다. Java-config bean 정의를 xml-config로 가져 오려면 Java-config 클래스를 XML-config 내의 bean으로 정의하기 만하면됩니다. 여분의 항아리가 필요하지 않습니다.

    이것은 실제로 상당히 간단하게 끝났다. Java-config bean 정의를 xml-config로 가져 오려면 Java-config 클래스를 XML-config 내의 bean으로 정의하기 만하면됩니다. 여분의 항아리가 필요하지 않습니다.

    @Configuration
    public class SomeJavaConfig {
    
        @bean
        ... [bean definition]
    }
    

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

    <!-- 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 정의가 있습니다.

    UPDATED - 답변에서 Alan Franzoni의 코멘트를 포함 시켰습니다.

  2. ==============================

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

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

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

    자세한 내용은 의 차이점을 참조하십시오.

  3. ==============================

    3.해야한다 :

    해야한다 :

    spring-javaconfig-<version>.jar
    
  4. from https://stackoverflow.com/questions/13254779/how-to-import-java-config-class-into-xml-config-so-that-both-contexts-have-beans by cc-by-sa and MIT license