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.