Прежде всего, превращая ваш Бин в прототип Бин не гарантирует, что экземпляр создается для каждого вызова метода (или любого использования, как угодно).
В вашем случае вы 'все в порядке, благодаря использованию Provider
.
Однако я заметил, что вы обращаетесь к getRegistrationGroups
напрямую.
return registrationGroupRepository.getRegistrationGroups(1);
Как этот код компилируется?Вы должны позвонить get()
в Provider
экземпляре.
return registrationGroupRepository.get().getRegistrationGroups(1);
Отвечая на ваш вопрос, вы должны хорошо использовать этот код.Мне не нравится тот факт, что вы поддерживаете какое-то состояние внутри RegistrationGroupRepositoryImpl
, но это ваш выбор.
Я всегда предпочитаю, чтобы все мои поля были final
.Если один из них потребует, чтобы я удалил модификатор final
, то с дизайном что-то не так.