Papel da nova palavra-chave no Spring Framework

No Spring Framework, parece quebeans são a maneira preferida de criar objetos para usar na lógica de negócios.

[Injeção de dependência] é um processo pelo qual os objetos definem suas dependências, ou seja, os outros objetos com os quais trabalham, apenas por meio de argumentos do construtor, argumentos para um método de fábrica ou propriedades definidas na instância do objeto após a construção ou retorno de um método de fábrica. O contêiner injeta essas dependências quando cria o bean. Esse processo é fundamentalmente o inverso, daí o nome Inversion of Control (IoC), do próprio bean que controla a instanciação ou a localização de suas dependências usando a construção direta de classes ou um mecanismo como o padrão Service Locator.

Então, do meu entendimento simples, a diferença é algo como isto:

// Plain ol' Java
Foo f = new Foo();

// Using beans in Spring Framework
Foo f = FooFactory.get();

É uma simplificação excessiva dizer que, em regra, em métodos fora do@Configuration aulas e@Bean definições, os desenvolvedores só devem obter objetos usando beans? Especificamente, no caso em que eu quero um objeto novo, devo injetar um protótipo de bean em vez de usar onew palavra-chave diretamente?

Um exemplo de código em que não tenho certeza se estou seguindo as convenções do Spring é mostrado abaixo.

// 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();

questionAnswers(1)

yourAnswerToTheQuestion