Pull to refresh
0
0

Senior java developer

Send message
.map()
Этот метод полностью повторяет аналогичный метод для stream()

Это не так. Optional.map не работает в случае null значения, а Stream.map работает
Сомнительное решение.
1. В методе TelegramUpdateHandlerBeanPostProcessor.postProcessAfterInitialization аргумент bean — это прокся, у которой на методах уже нет никаких аннотаций.
Решение: заменить обращения к bean на botControllerMap.get(beanName)
2. TelegramUpdateHandlerBeanPostProcessor вызывается в середине процесса настройки бинов. Сохраняемый «контроллер» не факт, что полностью настроен.
Решение: наполнять контейнер только после инициализации всего спринга (например, через ApplicationListener). Или сохранять не конкретный «контроллер», а его beanName, чтобы в момент обработки брать настроенный «контроллер» из контекста спринга.
3. Если «контроллер» будет иметь скоуп отличный от синглтона, то это решение тоже работать не будет, так как его создание будет происходить не при старте спринга, а когда-то.
Решение: наполнять контейнер на этапе BeanFactoryPostProcessor, сохраняя тройки path-beanName-method

Information

Rating
Does not participate
Date of birth
Registered
Activity