У меня есть "подобная плагину" архитектура, и я хочу создать один экземпляр каждого класса, который реализует выделенный интерфейс, и поместить их в кеш. (Чтобы иметь эффект синглтона).
Плагины будут предоставлены в виде jar-файлов и помещены в файл war для движка приложения до загрузки приложения.
Я пытался использовать ClassPathScanningCandidateComponentProvider, так как я все равно использую Spring, но это не сработало. Поставщик пожаловался, что не смог найти файл класса HttpServletResponse при сканировании пути к классам. Я не могу обойти это, когда я добавляю банку сервлета, тогда у меня, конечно, возникают проблемы, потому что тот же самый банку также предоставляет GAE. Если я этого не сделаю, я получаю ошибку выше ...
Поэтому я попытался добавить статический код инициализации, но, конечно, это не работает, потому что класс инициализируется, когда он создается в первый раз. (Ну, я знал это, но это стоило попробовать)
Последний шанс, который я сейчас вижу, это то, что я создаю файл свойств со всеми классами плагинов при создании пакета, но это требует написания плагина maven и т. Д., И я бы хотел этого избежать.
Есть что-то, чего мне не хватает?