Injeção de dependência da mola

Injeção de dependência da mola

Injeção de dependência ou COI é um conceito central da estrutura da mola que ajuda a gerenciar objetos de feijão no aplicativo. Injeção de dependência, ou DI, como o nome sugere, gerencia os objetos dependentes e torna nosso código vagamente acoplado.

Por exemplo, um aplicativo de mola pode construir vários módulos dependentes um do outro para formar um aplicativo totalmente funcional. Os objetos dependentes devem fornecer sua instância durante o tempo de execução, caso contrário, o aplicativo pode quebrar. Assim, como estrutura, Spring lida com essa situação e fornece objetos de feijão em tempo de execução.

O COI (inversão do controle) faz essa tarefa, eu.e., injeta dependências durante a criação de feijão. É um contêiner principal que cria, configura, gerencia objetos e até gerencia todo o ciclo de vida de um objeto.

Spring DI é categorizado principalmente como um Baseado em construtor injeção de dependência e um Baseada em setter Injeção de dependência.

Neste artigo, nós iremos primeiro aprenda sobre baseado em construtor injeção de dependência e a mudança para baseada no setter no próximo tópico.

Vamos começar com um aplicativo de primavera baseado em Maven que contém os seguintes arquivos Java e Config.

// Funcionário.Java

É uma classe de feijão simples que contém duas propriedades e métodos de setter-getter.

Pacote com.Linuxhint.feijões;
importação org.Springframework.estereótipo.Componente;
@Componente
Public Class Funcionário
private int id;
nome de string privado;
public String getName ()
Nome de retorno;

public void setName (nome da string)
esse.nome = nome;

public int getId ()
ID de retorno;

public void SetId (int id)
esse.id = id;

// Gestor de projeto.Java

Aqui, criamos outro feijão que contém alguns métodos de getter-setter, e o ponto importante é observar o construtor ProjectManager () que atua como um di DI baseado em construtor. Ele cria um objeto de feijão da classe de funcionários enquanto carrega o contexto do aplicativo.

Pacote com.Linuxhint.feijões;
importação org.Springframework.estereótipo.Componente;
@Componente
classe pública ProjectManager
funcionário privado funcionário;
Public ProjectManager (funcionário do funcionário)
esse.funcionário = funcionário;

public void setInfo (int id, nome da string)
funcionário.setid (id);
funcionário.setName (nome);

public String getinfo ()
retornar “id =“+funcionário.getId ()+”\ nname =“+funcionário.getName ();

// SpringApp.Java

Esta é a classe principal que carrega SpringConfig. Aqui, usamos o método getBean () para obter um objeto da classe ProjectManager. Depois disso, definimos e obtemos valores para este objeto.

Pacote com.Linuxhint;
importação org.Springframework.contexto.anotação.AnoTationConfigApplicationContext;
importar com.Linuxhint.feijões.Gestor de projeto;
classe pública SpringApp
public static void main (string [] args)
AnoTationConfigApplicationContext AC = NOVO AnoTationConfigApplicationContext (SpringConfig.aula);
ProjectManager PM = AC.getBean (ProjectManager.aula);
PM.Setinfo (102, "Roman");
Resultado da string = pm.obter informação();
Sistema.fora.println (resultado);
AC.fechar();

// SpringConfing.Java

Esta é a classe de configuração que ajuda a configurar o aplicativo. É importante enquanto configura aplicativos usando anotações.

Pacote com.Linuxhint;
importação org.Springframework.contexto.anotação.Componentscan;
importação org.Springframework.contexto.anotação.Configuração;
@Configuração
@ComponentsCan (“com.Linuxhint.*”)
classe pública SpringConfig

// pom.xml

Este arquivo contém dependências do Maven para o projeto da primavera.


4.0.0
com.Linuxhint
SpringApp
0.0.1-Snapshot
SpringApp
um aplicativo simples de primavera


org.Springframework
Spring-Core
$ Spring.versão


org.Springframework
Spring-Context
$ Spring.versão


Javax.anotação
Javax.anotação-api
1.3.2



5.2.8.LIBERAR

Estrutura do projeto

Depois de criar todos os arquivos e código, nossa estrutura de projeto é mostrada abaixo:

Execute o aplicativo

Agora, execute o aplicativo e ele deve mostrar a seguinte saída na janela do console:

id = 102
Nome = Roman

Configuração usando código XML

Você pode fazer isso se quiser configurar seu aplicativo usando o código XML. No entanto, a configuração XML é uma maneira antiga da moda, mas ainda é suportada pela estrutura da primavera. Você tem a opção de configurar seu aplicativo usando anotações XML ou Java.

No caso XML, só precisamos criar um arquivo ApplicationContext.xml e leia no SpringApp arquivo de classe. Seu ApplicationContext.xml O arquivo deve conter o seguinte código XML:

// ApplicationContext.xml


xmlns: xsi = "http: // www.W3.org/2001/xmlschema-instância "
xmlns: p = "http: // www.Springframework.org/esquema/p "
xsi: schemalocation = "http: // www.Springframework.org/esquema/feijão
http: // www.Springframework.Org/Schema/Beans/Spring-Beans-3.0.xsd ">
class = "com.Linuxhint.feijões.ProjectManager " />






Aqui, a tag é usada para especificar a classe Bean, e o ID especifica a instância do feijão. A tag especifica a dependência do construtor e a tag para injetar o objeto no construtor.

Conclusão

Neste artigo, aprendemos sobre a injeção de dependência da mola baseada em construtor. Aprendemos sua configuração usando anotações Java e XML ambos. Como é um conceito central da estrutura da primavera, você deve aprender com o exemplo em execução que explicamos.