Я использую API, который предоставляет услуги в виде классов XXXLocalServiceUtil, которые являются статическими оболочками одноэлементных объектов. Вместо использования статических методов XXXLocalServiceUtil я хочу внедрить сами объекты XXXLocalService, чтобы использовать их непосредственно в моем коде, например:
@Named
public class MyMailingService {
@Inject UserLocalService userService;
public String mailUser(String email) {
User user = userService.getUser(email);
emailUser(user);
}
}
И настройте мой applicationContext.xml
так:
<beans ...>
<bean class="x.y.z.UserLocalServiceUtil" factory-method="getService"/>
<bean class="x.y.z.CompanyLocalServiceUtil" factory-method="getService"/>
...
</beans>
Это работает отлично. Теперь этот API, о котором я говорю, имеет около 100 таких классов XXXLocalServiceUtil, каждый со своим собственным статическим методом getService
, который возвращает реальную службу. Вместо того, чтобы перечислять все эти службы в моем applicationContext.xml
, я бы хотел, чтобы Spring творил чудеса, находя правильный класс XXXLocalServiceUtil для каждого XXXLocalService, который я внедряю. Итак, что мне нужно, так это некая динамическая фабрика компонентов, которая будет делать всю работу за меня, конечно, на основе ленивой загрузки.
Кто-нибудь знает, как это может быть легко достигнуто?