2012-11-06 10 views
28

Mam projekt, w którym muszę bootstrap @Configuration klasy Java-config w konfiguracji XML.Jak zaimportować klasę Java-config do XML-config, aby oba konteksty miały komponenty bean?

Aby to zrobić, czytam, że muszę również dołączyć następującą definicję fasoli (wraz z definicjami fasoli klas opisywanych przez @Configuration).

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

Ale skończę Otrzymuję następujący błąd:

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

muszę zakładać Brakuje mi słoik gdzieś, ale moi różnych wyszukiwarek internetowych nie spowodowała jeszcze odpowiedzi. Każda pomoc będzie wielce ceniona. Dzięki.

EDIT: Najwyraźniej czytałem starą dokumentację, która nie jest już aktualna. Pozwól mi się cofnąć. Mój projekt zawiera starszą konfigurację opartą na XML. Nowszy kod używa "Java-config". W związku z tym konteksty są najwyraźniej całkowicie odrębne. Chciałbym "zaimportować" klasę java-config do konfiguracji XML, aby oba konteksty miały te konkretne komponenty. Czy ktoś wie, jak mogę to zrobić?

Odpowiedz

54

To rzeczywiście zakończył się dość prosta. Aby uzyskać definicję komponentu bean Java-config w xml-config, po prostu zdefiniuj klasę Java-config jako komponent bean w konfiguracji XML-config. Nie ma żadnych dodatkowych słoików.

@Configuration 
public class SomeJavaConfig { 

    @bean 
    ... [bean definition] 
} 

W konfiguracji XML-u definiuje się tę klasę jako komponent 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-konfiguracja, która może być częścią w różnych kontekstach, ma teraz wszystkie definicje fasoli zdefiniowane w klasie JavaConfig.

ZAKTUALIZOWANY - do włączenia komentarza Alana Franzoniego poniżej w odpowiedzi.

+27

Sidenote: musi również istnieć w konfiguracji XML, w przeciwnym razie plik javaconfig nie zostanie dołączony. –

+0

jeśli już zdefiniowałeś ConfigurationPostProcessor w konfiguracji XML, nie jest potrzebny! –

+0

Znacznik dodał do ciebie wszystkie sprężyny PostProcessors. –

1

powinno być:

spring-javaconfig-<version>.jar 
+6

Najwyraźniej słoik spring-javaconfig został odrzucony. Miała zostać przeniesiona do Spring Core w wersji 3.0. – Mostfoolish

Powiązane problemy