У меня есть приложение spring на основе xml-config, где один из моих bean-компонентов требует в качестве параметра конструктора параметр com.typesafe.config.Config. Для этой цели у нас есть класс @Configuration, в котором один из методов (обозначенный как @Bean) возвращает объект com.typesafe.config.Config.
Но когда весна начинается, он жалуется, что «Не удалось создать экземпляр [com.typesafe.config.Config]: указанный класс является интерфейсом»
Как внедрить возвращаемый объект getconfig в конструктор через xml?
Вот фрагмент кода, упрощенный, чтобы избавиться от логики приложения:
import com.typesafe.config.Config;
...
public class myFilter implements Filter {
public myFilter(Config aconfig) {
...
}
}
Затем у меня есть следующий класс JavaConfig, который создает bean-компонент, который мне нужно внедрить в конструктор myFilter:
@org.springframework.context.annotation.Configuration
public class TSConfiguration {
...
@Bean(name = "app-config")
public Config getConfig() {
...
}
}
Я добавил в свой файл spring.xml следующее:
<beans:bean class="TSConfiguration" />
<beans:bean id="app-config" class="com.typesafe.config.Config"/>
<beans:bean id="theFilter" class="myFilter">
<beans:constructor-arg index="0" ref="app-config"/>
</beans:bean>
Вот исключение из Spring:
15-Feb-2017 13:19:55.463 SEVERE [localhost-startStop-1] org.springframework.web.context.ContextLoader.initWebApplicationContext Context initialization failed
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'app-config' defined in ServletContext resource [/WEB-INF/spring-security.xml]: Instantiation of bean failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.typesafe.config.Config]: Specified class is an interface
Спасибо.