Второе - это то, что называется отложенной инъекцией или инициализацией. Ваш контейнер будет выбирать, выполнять ли поиск, инициализацию и внедрение правильного объекта для TestBean, пока вы не вызовете get () в большинстве случаев.
Что касается того, «какой из них лучше», вам следует придерживаться правил оптимизации. Не оптимизируйте, пока у вас не возникнет проблема, и используйте профилировщик.
Другими словами, используйте первое, если вы не можете окончательно доказать, что второе экономит вам значительные объемы памяти и процессора.
Дайте мне знать, если это ответит на ваш вопрос!