Conheça o contêiner SpringIOC

Índice

1. SpringFrameWork

2. Contêiner SpringIOC

3. Funções principais do SpringIoc


1. SpringFrameWork

1.A relação entre SpringFrameWork e Spring

SpringFrameWork é a implementação básica de SpringCould, SpringMVC e outras tecnologias, e todas as tecnologias SpringCloud, SpringFrameWork, SpringMVC e outras tecnologias são combinadas para formar a família Spring.

 Em geral:

  1. Spring em um sentido amplo refere-se à pilha de tecnologia Spring baseada no Spring Framework.
  2. Após mais de dez anos de desenvolvimento, Spring não é mais uma simples estrutura de aplicativo, mas gradualmente se desenvolveu em uma tecnologia madura composta por vários módulos de subprojetos diferentes), como Spring Framework, Spring MVC SpringBoot, Spring Cloud, Spring Data Spring Segurança, etc., Spring Framework é a base para outros subprojetos.
  3. Esses subprojetos cobrem tudo, desde o desenvolvimento de aplicativos de nível empresarial até a computação em nuvem, e podem ajudar os desenvolvedores a resolver vários problemas práticos que surgem constantemente durante o processo de desenvolvimento de software e proporcionar aos desenvolvedores uma melhor experiência de desenvolvimento.

sentido estrito:

  1. Spring no sentido estrito refere-se especificamente ao Spring Framework, que normalmente chamamos de Spring Framework.
  2. Spring Framework (Spring Framework) é uma estrutura de aplicativo de código aberto desenvolvida pela SpringSource Company e foi originalmente criada para resolver vários problemas comuns no desenvolvimento empresarial. Ele fornece muitas funções, como: injeção de dependência (injeção de dependência), programação orientada a aspectos (AOP), gerenciamento de transações declarativas (TX), etc. Seu principal objetivo é tornar o desenvolvimento de aplicativos de nível empresarial mais fácil e rápido, e o framework Spring é amplamente utilizado na área de desenvolvimento empresarial Java.
  3. Outros frameworks do Spring Family Bucket são baseados no framework Spring Framework!

1.2 Como framework básico, você precisa entender o que é um framework

Framework = combinação de pacote jar e arquivo de configuração.

Por exemplo, a diferença entre log4j e dbutil.

dbutil (tecnologia de simplificação de banco de dados): É apenas um pacote jar simples, usando apenas seus métodos relacionados, portanto, é apenas uma classe de ferramenta log4j (tecnologia de saída de log): Embora existam apenas dois métodos em seu pacote jar, ele pode configurar relacionados log4j .propertis para modificar o conteúdo da saída do log, portanto esta é uma estrutura.

1.3 Funções do SpringFrameWork

SpringFrameWork tem quatro funções mais importantes, nomeadamente Core Container, AOP&Aspect, TX e SpringMVC.

módulo funcional Características
Contêiner principal Qualquer função usada no ambiente Spring deve ser baseada no contêiner IOC
AOP e Aspectos Programação Orientada a Aspectos
Texas Gerenciamento de transações declarativas
Primavera MVC Recursos integrados para aplicativos da web

1.4 Vantagens do SpringFrameWork

  1. Ecossistema rico: Spring Framework é suportado por uma grande comunidade de código aberto e fornece uma variedade de extensões e plug-ins, como Spring Security, Spring Data, etc., enriquecendo as escolhas e a escalabilidade dos desenvolvedores.
  2. Design modular: Spring Framework adota design modular, dividindo funções em módulos independentes.Os desenvolvedores podem optar por utilizar diferentes módulos de acordo com suas necessidades, o que melhora a flexibilidade e facilidade de manutenção do projeto.
  3. Simplifique o desenvolvimento Java: Spring Framework fornece recursos como injeção de dependência (DI) e programação orientada a aspectos (AOP), que simplifica o processo de desenvolvimento de aplicativos Java, reduz a gravação de código padrão e melhora a eficiência do desenvolvimento.
  4. Inovação e desenvolvimento contínuos: Spring Framework continua a realizar inovação e desenvolvimento tecnológico, introduzindo novos recursos e funções, como programação reativa, programação funcional, etc., para atender continuamente às necessidades de desenvolvimento em diferentes cenários e acompanhar os tempos.

2. Contêiner SpringIOC

2.1 A diferença entre o contêiner SpringIOC e o contêiner comum

Primeiro, entenda o que são containers comuns e containers complexos

  • Contêineres comuns: assim como as coleções na estrutura de coleta de classes Java, eles só podem armazenar e recuperar funções.
  • Contêiner complexo: pode gerenciar algumas transações relativamente complexas, como o relacionamento entre conteúdos, como um contêiner de servlet, que pode receber informações de solicitação e operar com base nas informações de solicitação.

SpringIoc pode gerenciar o contêiner de componentes, que é um contêiner complexo que pode não apenas armazenar componentes, mas também gerenciar dependências entre componentes, criar e destruir componentes, etc.

2.2 O que são componentes

Componentes são objetos que podem ser reutilizados

Por exemplo, numa estrutura de três camadas, a arquitetura de três camadas pode ser dividida em três componentes

2.3 Quais são as vantagens dos componentes de gerenciamento Spring?

  1. Reduza o acoplamento entre componentes: Spring gerencia componentes por meio de injeção de dependência (DI), para que as dependências entre componentes sejam gerenciadas dinamicamente pelo contêiner, reduzindo o forte acoplamento entre componentes e melhorando a escalabilidade e flexibilidade do código.
  2. Maior capacidade de reutilização e manutenção do código: Ao entregar a criação e configuração de componentes ao gerenciamento de contêineres Spring, os componentes podem ser substituídos, atualizados e configurados de maneira flexível, sem modificar o código original, melhorando a capacidade de reutilização dos componentes, o desempenho e a capacidade de manutenção.
  3. Configuração e gerenciamento convenientes: Spring fornece uma variedade de métodos de configuração, como configuração XML, configuração de anotação e configuração Java, que podem configurar e gerenciar componentes de maneira flexível. Ao mesmo tempo, o contêiner Spring gerencia uniformemente o ciclo de vida dos componentes, simplificando o componente configuração e gerenciamento.processo de gerenciamento.
  4. Objetos (componentes) gerenciados pelo Spring podem desfrutar de outras funções do framework Spring, como AOP, declaração de transação, etc.

2.4 Interfaces específicas e classes de implementação implementadas pelo SpringIoc

1. Duas interfaces específicas

interface Características
Fábrica de feijão Fornece as funções básicas do contêiner IOC para gerenciar e obter objetos Bean
ApplicationContext Fornece funções mais avançadas baseadas no BeanFactory, como processamento de eventos, suporte à internacionalização, etc.

 A relação entre as duas interfaces:

  1. BeanFactory é o contêiner mais básico do Spring, fornecendo as funções básicas do contêiner IoC para gerenciar e obter objetos Bean. É uma implementação do padrão factory, responsável por criar e gerenciar o ciclo de vida e dependências do Beans. BeanFactory possui o recurso de carregamento lento e só será instanciado quando os beans precisarem ser obtidos.
  2. ApplicationContext é estendido com base no BeanFactory e fornece funções e recursos mais avançados. ApplicationContext irá pré-instanciar e inicializar todos os objetos Bean na inicialização e armazená-los em cache no contêiner, fornecendo acesso mais rápido. Além das funções do BeanFactory, o ApplicationContext também suporta processamento de eventos, suporte à internacionalização, carregamento de recursos e outras funções.

Resumindo, BeanFactory fornece a estrutura de configuração e funcionalidade básica, enquanto ApplicationContext adiciona mais funcionalidades específicas da empresa. ApplicationContext é um superconjunto completo de BeanFactory! 

2.5Quatro classes de implementação da interface ApplicationContext

Digite o nome descrever
ClassPathXmlApplicationContext Crie um objeto contêiner IOC lendo o arquivo de configuração de formato XML no caminho de classe. É adequado para colocar o arquivo de configuração no caminho de classe do projeto, como o arquivo de configuração no diretório src/main/resources.
FileSystemXmlApplicationContext Leia o arquivo de configuração no formato XML por meio do caminho do sistema de arquivos para criar um objeto contêiner IOC. Aplica-se a arquivos de configuração que especificam caminhos absolutos ou relativos.
AnnotationConfigApplicationContext Crie um objeto contêiner IOC lendo a classe de configuração Java. É adequado para configuração baseada em anotações e não requer o uso de arquivos XML para configuração.
WebApplicationContext Especialmente preparado para aplicativos da Web, crie objetos contêineres IOC com base no ambiente da Web e importe e armazene os objetos no domínio ServletContext. Adequado para projetos da Web para obter informações contextuais relacionadas à Web.

Uma estrutura Spring só precisa escolher um método de implementação de subclasse

A seguir estão as condições para a implementação das quatro classes de implementação

  • ClassPathApplicationContext: 1. Use configuração XML 2. Recurso no caminho de classe do projeto
  • FileSystemApplicationContext: 1. Use configuração XML 2. Armazene o arquivo fora do projeto, sob uma determinada letra de unidade
  • AnnotationConfigApplicationContext: 1. O arquivo de configuração usa classes Java
  • WebApplicationContext: 1. O projeto web corresponde ao contêiner ioc

2.6 Método de configuração do framework Spring

  1. Método de configuração XML:

    • Descrição: um dos primeiros métodos de configuração do Spring define beans e suas dependências, escopo e outras informações por meio de arquivos XML, e o contêiner Spring IOC gerencia as dependências entre beans.
    • Recursos: Suportado desde a primeira versão do framework Spring.
  2. Método de anotação:

    • Descrição: compatível a partir do Spring 2.5, usando anotações para substituir informações de configuração em arquivos de configuração XML. Ao usar anotações (como @Component, @Service, @Autowired, etc.) na classe Bean, o Bean é registrado no contêiner Spring IOC para obter gerenciamento de dependências.
    • Recursos: Simplifique a configuração e melhore a eficiência do desenvolvimento.
  3. Método de classe de configuração Java:

    • Descrição: Suportado a partir do Spring versão 3.0, utilizando classes Java para definir objetos Bean, dependências e informações de configuração, substituindo arquivos de configuração XML. Implemente a configuração de beans e dependências através de @Configuration, @Bean e outras anotações.
    • Recursos: Use código Java para escrever configuração, alta segurança de tipo e pode usar recursos orientados a objetos para configuração.

A configuração principal atual: classe de configuração + método de anotação (atendendo ao SpringBoot) principalmente para anotação


3. Funções principais do SpringIoc

Existem duas funções principais do Spring: SpringIoc (Inversão de Controle) e DI (Injeção de Dependência)

O que é inversão de controle Ioc (Inversão de controle)

        Refere-se a um princípio de design que transfere o controle da criação e invocação de objetos do aplicativo para o contêiner. No IoC, os aplicativos não criam e gerenciam mais objetos diretamente, mas o contêiner IoC é responsável por criar e gerenciar objetos e injeta dependências de objetos no aplicativo por meio de injeção de dependência.

As principais características são as seguintes:

  • Transferência de controle: o aplicativo não controla mais diretamente a criação e invocação de objetos, mas delega o gerenciamento ao contêiner IoC.
  • Injeção de dependência: Por meio da injeção de dependência, as dependências de objetos são injetadas na aplicação, o que resolve o acoplamento entre objetos e melhora a flexibilidade e testabilidade do código.
  • Pesquisa de dependência: o aplicativo usa o contêiner IoC para encontrar os objetos que precisa usar, em vez de criar os próprios objetos, reduzindo as dependências de código.

O que é injeção de dependência DI (injeção de dependência)

Crie dois objetos A e B. O objeto B passa o objeto A para o objeto B por meio do setter e de outros métodos.

Injeção de Dependência (DI) refere-se ao processo de transferência de dependências entre componentes, deixando o processamento de dependências para o contêiner, evitando assim dependências de codificação rígida entre objetos no código do aplicativo e implementando o desacoplamento de objetos entre eles. Na estrutura Spring, o DI pode ser implementado por meio de arquivos de configuração XML ou anotações e fornece três formas de injeção de dependência:

  1. Injeção de Construtor: Ao anotar o construtor da classe ou configurar as dependências correspondentes no arquivo de configuração XML, o contêiner passará automaticamente as dependências necessárias como parâmetros para o construtor ao criar o objeto. Conclua a criação do objeto e a injeção de dependência.

  2. Injeção de método Setter (Injeção Setter): Ao anotar o método Setter da classe ou configurar as dependências correspondentes no arquivo de configuração XML, o contêiner chama o método Setter correspondente após criar o objeto e passa os objetos de dependência necessários para completar o objeto. Injeção de dependência.

  3. Injeção de Interface: Ao definir variáveis ​​de membro do tipo de interface na classe, implementar a interface correspondente na classe e configurar as dependências correspondentes no arquivo de configuração XML, após o contêiner criar o objeto, ele chamará a interface para o objeto dependente .método a ser injetado na classe.


Resumir:

1. Conheça a relação entre SpringFrameWork e Spring

2. Domine as funções básicas do SpringFrameWork

3. Domine as duas interfaces e quatro implementações do SpringIoc

4. Domine os três métodos de configuração do framework Spring

5. Compreenda a inversão de controle Ioc e a injeção de dependência DI

aplicativo:

Implementando a configuração do SpringIoC com base no blog-CSDN do XML_Alphamilk 

Acho que você gosta

Origin blog.csdn.net/dogxixi/article/details/132457110
Recomendado
Clasificación