Я довольно новичок в Spring DI. У нас есть два класса: PhysicalService и PhysicalDAO. Экземпляр физической службы создается динамически с использованием некоторого обработчика службы, поэтому он не является управляемым компонентом Spring. Физический экземпляр DAO управляется Spring Beans. Есть ли способ, с помощью которого я могу вводить физическое dao в физическое обслуживание?Инъекция весенней зависимости
ответ
Является ли сервис-обработчик весенним бобом? Затем вы можете ввести DAO в обработчик сервиса, и обработчик службы может предоставить его службе, когда она ее создаст.
В качестве альтернативы, вы можете использовать инкапсуляцию для встраивания компонента-прототипа в обработчик, эффективно предоставляя фабричный метод в обработчике, который запрашивает весну, чтобы создать экземпляр службы.
Сказали, почему вам нужен сервис-обработчик? Вы уверены, что не можете использовать весну для создания сервисов?
Edit: Если вы можете избавиться от файла свойств я бы включить все услуги в пружинную фасоль, идентификаторы соответствуют предоставленному идентификатору обработчика, впрыснуть контекст приложения в обработчик службы, и сделать:
public Object getInstance(String id) {
return applicationContext.getBean(id);
}
Чтобы перенести параметры файла весны, я использовал бы регулярную замену выражения.
Я пытаюсь реорганизовать существующий код. Обработчик сервисов использует фабричный шаблон, и экземпляр службы создается на основе некоторого id. У нас есть метод getInstance (String id), основанный на id, мы получаем имя класса из файла свойств и создаем экземпляр для него. –
Вы сказали ServiceHandler, что ящик PhysicalService с использованием Factory Pattern.
Сначала вы должны ввести PhysicalDAO на завод, вы можете определить его в контексте весны или с помощью аннотации с автоподдержкой.
//spring-context.xml
<bean id="physicalDAO" class="package.dao.PhysicalDAO">
//inject reference needed by dao class
</bean>
<bean id="physicalServiceFactory" class="package.service.PhysicalServiceFactory">
<property name="physicalDAO" ref="physicalDAO " ></property>
</bean>
и в классе фабрики вы можете написать код следующим образом:
PhysicalServiceFactory {
private PhysicalDAO physicalDAO;
public void setPhysicalDAO(PhysicalDAO _physicalDAO) {
physicalDAO = _physicalDAO;
}
public PhysicalService create(String id) {
PhysicalService ps = PhysicalService(id);
ps.setPhysicalDAO(physicalDAO);
return ps;
}
}
Пока приложение весна конкретное приложение, ниже простые шаги могут помочь придать PhysicalDAO к PhysicalService в аннотаций способом.
//Add this spring annotation to add your DAO class to Spring container
@Component("physicalDAO")
public class PhysicalDAO {
}
//Add Service class with PhysicalDAO object reference to use.
public class PhysicalService {
@Autowired
PhysicalDAO physicalDAO;
}
Определите нижеприведенные данные в файле конфигурации пружины.
<context:annotation-config></context:annotation-config>
<context:component-scan base-package="com.cognizant.aop.annotation"></context:component-scan>
- 1. Впрыск весенней зависимости с использованием метода сеттера?
- 2. Инъекция динамической зависимости
- 3. Что означает инъекция зависимости?
- 4. инъекция зависимости Dagger
- 5. инъекция зависимости Laravel/МОК
- 6. Как работает инъекция зависимости?
- 7. инъекция Динамической зависимости
- 8. инъекция Динамической среды зависимости
- 9. Весенняя инъекция в зависимости от определенного свойства
- 10. Впрыск весенней зависимости с WildFly
- 11. Что делает инъекция пружинной зависимости?
- 12. Как работает инъекция зависимости AngularDart?
- 13. инъекция зависимости netcore на пользователя
- 14. Реагирующая инъекция зависимости или аналогичная?
- 15. инъекция зависимости C++ с фруктами
- 16. Угловая инъекция зависимости не работает
- 17. инъекция зависимости php с контейнером
- 18. инъекция зависимости osgi между сервисами
- 19. Возможна ли инъекция конструктора в классах весенней конфигурации?
- 20. угловой, инъекция зависимости кармы, отказ от приёма
- 21. Возможна ли инъекция зависимости для JSP-компонентов?
- 22. Инъекция autowired зависимости потерпела неудачу в коте
- 23. Laravel 4 - инъекция зависимости на основе конфигурации?
- 24. Локальная инъекция зависимости в ошибке angular.js
- 25. Инъекция зависимости, которая требует параметров для инициализации
- 26. Общая инъекция зависимости типа: Как вводить T
- 27. Как работает инъекция зависимости в ATG?
- 28. Angularjs: инъекция зависимости. Ошибка «не является функцией»
- 29. Как работает инъекция зависимости конструктора в Laravel?
- 30. Unit Testing - Интерфейсы, насмешливая и зависимости Инъекция
'создан динамически с использованием какого-либо обработчика сервисов, какой он обработчик? или Вы создаете класс PhysicalServiceFactory для создания экземпляра PhysicalService? –