Jsr-223 и IoC
От Sergey Poziturin (2:5020/2141.3) к Anatoliy Sablin
В ответ на Заголовок предыдущего сообщения в треде (Имя Автора)
Hello, Anatoliy Sablin.
On 20.12.17 12:47 ДП you wrote:
SP>> Понадобилось тут сделать сабж, а именно в скрипт на kotlin (ну
SP>> или Java - пофиг) инжектнуть свой бин через jsr-223.
AS> Я так баловался давно, описываешь интерфейс, пишешь на groovy
AS> скрипт, который его реализует, потом подсовываешь спрингу. Всё
AS> работало, но не пригодилось.
Я этот подход использую, конечно, причём всерьёз и надолго.
Но мой вопрос строго об обратном: не из скрипта получить имплементацию интерфейса, а в скрипт зафигачить свой бин. Причём сейчас я это делаю не очень красиво (в hard-coded переменную вставляю application context, далее скрипт сам делает getBean() того, что ему нужно). Причём получилось найти и сносное решение для юнит-тестирования и даже отладки (дебага) этих скриптов.
Но хочется красоты же.
lateinit var myBean: MyBean
И чтобы скрипт мог это использовать. Пока что ничего лучше парсинга сырца не придумал. То есть руками прямо в исходнике ищем аннотацию @Autowired и через контекст scripting engine загоняем бин класса MyBean в переменную "myBean". И это даже будет чудесно работать, причём как в скрипте jsr-223, так и нативно (если компилировать класс).
--
Best regards!
Posted using Hotdoged on Android
--- Hotdoged/2.13.5/Android
* Origin: Android device, Milky Way (2:5020/2141.3)
Ответы на это письмо:
From: Username
Заголовок следующего сообщения в треде может быть длинным и его придется перенести на новую строку
From: Username
Или коротким