Spring Framework - Arquitetura

O Spring pode ser potencialmente um balcão único para todos os seus aplicativos empresariais. No entanto, o Spring é modular, permitindo que você escolha quais módulos são aplicáveis ​​a você, sem ter que trazer o resto. A seção a seguir fornece detalhes sobre todos os módulos disponíveis no Spring Framework.

O Spring Framework fornece cerca de 20 módulos que podem ser usados ​​com base em um requisito de aplicativo.

Core Container

O Core Container consiste nos módulos Core, Beans, Context e Expression Language, cujos detalhes são os seguintes -

  • o Core O módulo fornece as partes fundamentais da estrutura, incluindo os recursos IoC e Injeção de Dependência.

  • o Bean módulo fornece BeanFactory, que é uma implementação sofisticada do padrão de fábrica.

  • o Contextmódulo é construído sobre a base sólida fornecida pelos módulos Core e Beans e é um meio para acessar quaisquer objetos definidos e configurados. A interface ApplicationContext é o ponto focal do módulo Context.

  • o SpEL O módulo fornece uma linguagem de expressão poderosa para consultar e manipular um gráfico de objeto em tempo de execução.

Acesso / integração de dados

A camada de Acesso / Integração de Dados consiste nos módulos JDBC, ORM, OXM, JMS e Transação, cujos detalhes são os seguintes -

  • o JDBC O módulo fornece uma camada de abstração JDBC que elimina a necessidade da tediosa codificação relacionada ao JDBC.

  • o ORM O módulo fornece camadas de integração para APIs de mapeamento relacional de objeto populares, incluindo JPA, JDO, Hibernate e iBatis.

  • o OXM O módulo fornece uma camada de abstração que suporta implementações de mapeamento Objeto / XML para JAXB, Castor, XMLBeans, JiBX e XStream.

  • O serviço de mensagens Java JMS módulo contém recursos para produzir e consumir mensagens.

  • o Transaction O módulo oferece suporte ao gerenciamento de transações programáticas e declarativas para classes que implementam interfaces especiais e para todos os seus POJOs.

Rede

A camada da Web consiste nos módulos Web, Web-MVC, Web-Socket e Web-Portlet, cujos detalhes são os seguintes -

  • o Web O módulo fornece recursos básicos de integração orientados para a web, como a funcionalidade de upload de arquivo de várias partes e a inicialização do contêiner IoC usando ouvintes de servlet e um contexto de aplicativo orientado para a web.

  • o Web-MVC módulo contém a implementação Model-View-Controller (MVC) do Spring para aplicativos da web.

  • o Web-Socket O módulo fornece suporte para comunicação bidirecional baseada em WebSocket entre o cliente e o servidor em aplicativos da web.

  • o Web-Portlet O módulo fornece a implementação MVC a ser usada em um ambiente de portlet e espelha a funcionalidade do módulo Web-Servlet.

Diversos

Existem alguns outros módulos importantes, como AOP, Aspects, Instrumentation, Web e módulos de teste, cujos detalhes são os seguintes -

  • o AOP O módulo fornece uma implementação de programação orientada a aspectos, permitindo que você defina interceptores de método e pontos de corte para desacoplar claramente o código que implementa a funcionalidade que deve ser separada.

  • o Aspects módulo fornece integração com AspectJ, que é novamente uma estrutura AOP poderosa e madura.

  • o Instrumentation O módulo fornece suporte de instrumentação de classe e implementações de carregador de classe para serem usados ​​em determinados servidores de aplicativos.

  • o MessagingO módulo fornece suporte para STOMP como o subprotocolo WebSocket a ser usado em aplicativos. Também oferece suporte a um modelo de programação de anotação para rotear e processar mensagens STOMP de clientes WebSocket.

  • o Test O módulo suporta o teste de componentes Spring com estruturas JUnit ou TestNG.