domingo, 16 de junho de 2013

Spring - Parte 2

O framework do Spring trabalha com o conceito de Injeção de Dependência (DI - Dependency Injection) o que diminui o acoplamento entre as classes.

Existem três formas para realizar DI:

  • Injeção por construtor (Constructor Injection)
  • Injeção por setter (Setter Injection)
  • Injeção por interface (Interface Injection)

A injeção por setter é a forma mais utilizada e trataremos dela com mais detalhes em outros posts. A injeção de interface não é implementada por Spring e por este motivo não falaremos mais dela.

Neste vídeo conheçaremos a ver a primeira opção - Constructor Injection. Particularmente eu não utilizou muito esta opção, pois temos muito mais flexibilidade com o setter injection e algumas vezes pode haver confusão com os argumentos na construção.

Neste caso os objetos são instanciados mediante a configuração dos argumentos passados para o construtor do objeto a ser criado.

Espero que o exemplo apresentado o vídeo tenha deixado claro a vantagem da injeção de dependência, uma vez que pudemos variar a posição (e também poderíamos ter alterado o tamanho) do quadrado na tela somente trocando o arquivo de configuração. Com a DI, não houve necessidade de alteração na classe e de geração de novo bytecode quando na verdade somente precisávamos alterar alguns parâmetros.

É importante destacar ainda que criamos um objeto tipo java.awt.Point de dentro do arquivo de configuração, que foi injetado no Quadrado. Esta classe não precisou de nenhuma linha em Java para ser criada.

Existe muita discussão sobre o uso de DI, um resumo pode ser visto na figura abaixo. Trataremos deste assunto novamente quando já tivermos visto mais sobre Spring.


Nenhum comentário:

Postar um comentário