можно, только тогда чтобы использовать бин его нужно будет сначала достать из контекста, а в моем случае - не надо
А в твоём случае из мапы, а в чем разница?
Я же не мапу кладу в груви, а элементы мапы, т.е сами бины
Мне кажется, Владислав имеет в виду, что если у тебя есть доступ к контексту, то у тебя уже как бы есть такая мапа.
Собрать бины из контекста при запуске скрипта. Для этого мне нужно: 1) Найти список айдишников бинов. Он хранится как константа в спринге 2) Пройти по списку айдишников, для каждого айди достать соответствующий бин из контекста, т.е из хешмапы 3) Положить айдишник и бин в груви Собрать бины из хешмапы. Для этого мне нужно: 1) Получить entrySet из мапы 2) Пройтись в цикле по энтрям, для каждой сделать getKey() + getValue() 3) Положить ключ и значение в груви В первом случае получается сложность O(n) 1) Сложность O(1), тк константа 2) Сложность O(n) на цикл по айдишникам Сложность O(1) на get из мапы (при хорошем распределении хешей ключей) Во втором случае тоже получается O(n) 1) Сложность O(1), тк entrySet закеширован в переменную 2) Сложность O(n), цикл по энтрям Сложность O(1) на getKey и getValue, тк это просто геттеры на переменной ——————————- Когда я писал этот текст, я думал что мой подход будет быстрее работать, но оказалось что у них у обоих O(n) 😅 Так что думаю переделаю мапу на простой подход с applicationContext, да) P.S Это при условии что хеши айдишников бинов нормально распределяются, а я не помню как это у строк происходит. А еще у context.getBean() есть какие то проверки для бинов, но я думаю не критично
Обсуждают сегодня