JavaRush /Blogue Java /Random-PT /Benefícios de usar Spring
Alex
Nível 37

Benefícios de usar Spring

Publicado no grupo Random-PT
Muitos desenvolvedores novatos, mais cedo ou mais tarde, encontram o Spring , uma estrutura popular para desenvolver aplicativos em Java. A principal coisa que o Spring permite é simplificar o desenvolvimento de aplicativos J2EE para o desenvolvedor. Aqui estão os principais benefícios que um desenvolvedor obtém ao usar o Spring:
Benefícios de usar Spring - 1
  • Spring fornece uma estrutura para sua aplicação futura, se você quiser um “espaço em branco” para sua aplicação futura. Ao mesmo tempo, a estrutura dita as regras para a construção do aplicativo - há uma determinada arquitetura de aplicativo na qual você precisa construir sua funcionalidade. Essa funcionalidade será, na verdade, a lógica de negócios do seu aplicativo. Spring inclui muitos subprojetos adaptados a funcionalidades específicas (SpringMVC, Spring Security, SpringData, etc. a lista completa pode ser vista em https://spring.io/projects ), dos quais o desenvolvedor pode escolher o que mais lhe convém, e não use o resto - este é um princípio modular de construção de um aplicativo;

  • Em um aplicativo baseado em Spring, os objetos são fracamente acoplados por meio do uso de injeção de dependência. Um dos objetivos do Spring era quebrar a dependência de alguns objetos de outros. O que é vício? É quando o Objeto1 usa os métodos de outro Objeto2, ou seja, o Objeto1 depende do Objeto2, cujos métodos ele usa. Por que ele depende? Mas porque até que o objeto Object2 seja criado, o Object1 não será capaz de implementar sua funcionalidade. Como quebrar o vício? “Injete” uma referência ao objeto Object2 no objeto Object1 por meio de um construtor ou setter. Este processo é na verdade injeção de dependência. É importante lembrar que no Spring os objetos devem ser construídos com base em interfaces, para que as dependências sejam injetadas na forma de interface para possível posterior substituição da implementação.

  • você não precisa criar objetos manualmente usando o operador new. Esta função foi delegada ao contêiner Spring. Esta é a inversão de controle (IoC) - transferindo a função de instanciar as dependências (objetos) necessárias para o contêiner. Qual é o papel do desenvolvedor em tudo isso, você pergunta? Declare o componente para que ele caia no contexto Spring. O contexto do Spring, simplesmente, é um mapa onde todos os beans estão localizados. Quando dizem que um bean está no contexto do Spring, considere que o bean está no mapa, e o Spring conhece a chave para obtê-lo no mapa. Tudo o que é marcado como bean na configuração xml ou em classes com anotações @Component é instanciado e colocado em um mapa no formato Map<key,bean> map, ou seja, o contêiner possui um mapa onde “armazena” todos os beans (o conceito chave no Spring é um bean, esta é uma entidade gerenciada pelo contêiner. Para que um bean (classe comum) seja gerenciado, ele deve cair no Contexto Spring.) e, se necessário, implementação, o contêiner faz algo assim: map.get(key), a chave é o tipo de campo;

  • O Spring libera você não apenas da necessidade de criar objetos, mas também de associá-los. Por exemplo, a anotação @Autowired permite conectar componentes automaticamente. A anotação de primavera @Autowired poderia ser descrita simplesmente assim: querido amigo, contêiner de primavera, por favor, olhe em seu mapa com beans para ver se você tem a classe instanceof ou implementa o que estou diante. Se houver, forneça-me um link no campo antes do qual fui declarado. A vinculação automática permite reduzir a quantidade de código ao determinar dependências de componentes;

  • No Spring, as configurações do bean são separadas do código do programa. Mover a configuração (gerenciamento de dependências) para um arquivo separado facilita as alterações subsequentes no projeto (substituindo implementações):


    • melhor testabilidade. Quando as classes são projetadas com base em DI e interfaces, torna-se possível substituir facilmente dependências (por implementações falsas) durante os testes;

    • a capacidade de programar em estilo declarativo usando anotações reduz a quantidade de código no aplicativo;

    • suporte e boa integração com tecnologias de acesso a dados, transações, AOP simplifica o desenvolvimento;

    • uma boa documentação ajuda muito na hora de depurar uma aplicação;
Para quem quer entender a Primavera, recomendo a leitura de K. Walls. Spring in Action - 3ª Edição e claro a documentação oficial.
Comentários
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION