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.