методы, которые возвращают прокси. Я попробую это сегодня, когда зайду в офис и отредактирую свой ответ.
ел бы реализовать что-то похожее на Spring Data.
Разработчик может определить некоторые интерфейсы, добавить пользовательскую аннотацию к интерфейсам, чтобы пометить их (мой код создаст экземпляры Proxy для интерфейсов) и использовать их @Autowire для необходимых сервисов.
Во время весенней инициализации мне нужно получить список всех интерфейсов (правильно аннотированных) <создать динамический прокси для интерфейсов и внедрить их там, где они необходимы.
Создание прокси, добавление созданных бинов - это нормально. Теперь проблема:
Как найти список всех интерфейсов?
Они могут быть помещены в любую упаковку (или даже в отдельную банку) и иметь любое имя. Сканирование всех классов, существующих на пути к классам, требует слишком много времени.
я нашелвопрос но для запуска требуется базовый пакет.
Пробовал решение на основе Reflections, но опять же он требует базового пакета или, в случае запуска с правами root, требует очень много времени для сканирования всех доступных классов.
Reflections reflections = new Reflections("...");
Set<Class<?>> annotated = reflections.getTypesAnnotatedWith(<annotation>);
Поэтому мне нужен полный список базовых пакетов, которые Spring просматривает, чтобы найти мои интерфейсы в пакетах (должно быть намного быстрее).
Информация определенно доступна в SpringContext. Я попытался отладить и посмотреть, как инициализируется basePackages [], но для инициализации используется множество частных классов / методов, и я просто не вижу, как правильно обращаться к basePackages из ApplicationContext.