Роль нового ключевого слова в Spring Framework
В Spring Framework это выглядит какбобы являются предпочтительным способом создания объектов использовать в бизнес-логике.
[Внедрение зависимостей] - это процесс, посредством которого объекты определяют свои зависимости, то есть другие объекты, с которыми они работают, только через аргументы конструктора, аргументы метода фабрики или свойства, которые устанавливаются в экземпляре объекта после того, как он создан или возвращен из заводской метод. Затем контейнер внедряет эти зависимости при создании компонента. Этот процесс в своей основе является обратным, отсюда и название Inversion of Control (IoC) самого компонента, управляющего созданием экземпляров или расположением его зависимостей с помощью прямого конструирования классов или механизма, такого как шаблон Service Locator.
Итак, из моего простого понимания, разница примерно такая:
// Plain ol' Java
Foo f = new Foo();
// Using beans in Spring Framework
Foo f = FooFactory.get();
Упрощение говорить, что, как правило, в методах вне@Configuration
классы и@Bean
Определения, разработчики должны получать объекты только с помощью бобов? В частности, в случае, когда я хочу свежий объект, я должен внедрить bean-прототип вместо использованияnew
ключевое слово напрямую?
Ниже приведен пример кода, в котором я не уверен, что следую соглашениям Spring.
// Construct a new object that will be created in the database
RecordDto record = new RecordDto();
// Or should I be using some bean factory?
RecordDto record = RecordDtoFactory.get();