Как импортировать Java-config-класс в XML-config, чтобы оба контекста имели beans?
У меня есть проект, где мне нужно загружать классы java-config @Configuration java-config в конфигурацию XML.
Чтобы сделать это, я читаю, что мне также необходимо включить следующее определение bean (наряду с определениями bean классов, аннотированных с помощью @Configuration).
<bean class="org.springframework.config.java.process.ConfigurationPostProcessor" />
Но в итоге я получаю следующую ошибку:
Caused by: java.lang.ClassNotFoundException: org.springframework.config.java.process.ConfigurationPostProcessor
Я должен предположить, что я где-то не встречал банку, но мои различные поисковые запросы в Интернете еще не дали ответа. Любая помощь будет принята с благодарностью. Спасибо.
EDIT: Очевидно, я читал старую документацию, которая больше не актуальна. Позвольте мне вернуться. Мой проект содержит более старую конфигурацию на основе XML. Новый код использует "Java-config". С учетом сказанного контексты, по-видимому, совершенно раздельны. Я хотел бы "импортировать" класс java-config в конфигурацию XML, так что оба контекста имеют те особенности beans. Кто-нибудь знает, как я могу это сделать?
Ответы
Ответ 1
Это на самом деле оказалось довольно простым. Чтобы получить определение Java-config bean в xml-config, просто определите класс Java-config как bean в XML-config. Нет необходимости в дополнительных баночках.
@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, который может быть частью другого контекста, теперь имеет все определения bean, определенные в классе JavaConfig.
ОБНОВЛЕНО - чтобы включить комментарий Алана Францони ниже в ответ.
Ответ 2
Должно быть в:
spring-javaconfig-<version>.jar