У меня есть некоторые java-объекты, которые поступают из внешней библиотеки, которые мне нужно вводить в моем весеннем проекте. Проблема заключается в том, что классы из библиотеки не знают о каком-либо весной API,POJO Injection in Spring похож на CDI
Если я впрыснуть бобы из библиотеки услуг с использованием @Autowired Я получаю org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type
Ниже мой класс обслуживания
@Path("/test")
public class TestService {
@Autowired
SomeOtherClass service;
@GET
public Response get(){
return Response.ok(service.someMethod()).build();
}
}
и Ниже мой класс из библиотеки, которая не знает весной
public class SomeOtherClass {
public String someMethod(){
return "Data from library";
}
}
Когда я вызываю мою службу я получаю исключение, как
org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.SomeOtherClass' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
Есть ли весной вес, чтобы ввести простой Java-объект, аналогичный впрыску в **CDI**
? Существует один вариант определения applicationcontext.xml и определение SomeOtherClass в xml и использование getBean, но я не хочу этого делать. Есть ли другой вариант?
Примечание:
Эти варианты не могут рассматриваться, потому что у меня есть 100's
классов, поступающих из библиотеки
Cannot use applicationcontext.xml
Cannot @Configuration @Bean to produce beans
.
Вам не нужно 'getBean', вам просто нужно объявить экземпляр' SomeOtherClass', тогда '@ Autowired' будет работать. Весна будет вводить только управляемые бобы (так же, как CDI, если что-то не управляется, оно ничего не будет вводить). –
Тогда не используйте весну ... Вам нужно, чтобы эти классы были известны как управляемые экземплярами Spring, если вы этого не сделаете, это не сработает. Если вы не можете (или не будете) использовать конфигурацию на основе xml или java, это не так много, что может помочь весна. (Хотя вы могли бы продлить весну, чтобы обнаружить/проверить эти классы, но для этого потребуются некоторые знания о внутренних деталях и работе весны). –