depreciação Tipo de Anotação Obrigatório de Primavera

user7294900:

Da Primavera Anotação Obrigatório Tipo é marcado como deprecated

Descontinuada. como de 5,1, em favor do uso de injeção de construtor para configurações necessárias (ou uma implementação personalizada InitializingBean)

Mesmo para relevantes RequiredAnnotationBeanPostProcessor

Mas não está claro o que é a substituição, parece que ele deve ser indisponíveis.

É esta mudança nos impedir método de marcação, conforme exigido a menos que seja parte de método construtor? para evitar exceções inesperadas sobre a criação de classes?

qutax:

Há três maneiras de injetar um feijão via anotação:

injeção de campo

@Autowired
private FooService fooService;

injeção setter

private FooService fooService;

@Autowired
public void setFooService(FooService fooService) {
    this.fooService = fooService
}

Injeção de construtor (este é o mencionado substituição)

private final FooService fooService;

@Autowired
public MyComponent(FooService fooService) {
    this.fooService = fooService;
}

Como você pode ver, a única maneira de declarar seu serviço finalé usando a injeção de construtor, que substitui a @Requiredanotação, porque obriga o usuário de sua classe para instanciar-lo com os serviços necessários. O usuário não tem que ser Spring, que poderia ser um teste de unidade simples assim.

Você deve usar injeção de construtor para dependências obrigatórias e setter injeções para dependências opcionais em vez de injeção de campo. Algumas razões:

  • Torna-se claro para todos que as dependências são necessárias
  • Faz o teste mais fácil
  • Você pode fazer seus objetos imutáveis

Outras leituras:

Acho que você gosta

Origin http://43.154.161.224:23101/article/api/json?id=172450&siteId=1
Recomendado
Clasificación