Melhor resposta
Atualmente na pilha de tecnologia java, Spring MVC está no topo e está sendo usado extensivamente para construir aplicativos Java corporativos.
Spring MVC está em grande demanda e atualizado. Eles lançam novas versões do Spring de vez em quando. A segurança do Spring é uma das melhores maneiras de proteger um aplicativo. Struts é antigo. Mas ele ainda existe, pois a maioria dos aplicativos Legacy foram construídos usando-o. Mas dificilmente qualquer desenvolvedor escolheria Struts para construir um aplicativo hoje.
Seu requisito pode ser facilmente atendido usando: -Spring MVC: para REST api, modelo cliente-servidor, Service Oriented Architecure (SOA). -Spring Security: para proteger seu aplicativo. -Hibernate ou Spring JDBC Template. (vá com Hibernate): para manipulação de banco de dados -MySQL para banco de dados. -JUnit para teste de unidade.
Resposta
O framework Spring consiste em vários módulos, um dos quais é MVC Model View Controller sob o domínio da Web.
Considere o seguinte visão panorâmica dos módulos Spring.
MVC: Você pode ver que o módulo da Web é referido como MVC./Remoting. Este módulo consiste em todo o código padrão necessário para desenvolver aplicativos da web. Isso inclui a manipulação de solicitações, métodos HTTP, mapeamentos de URL, resolvedores de visualização, bibliotecas de tags JSP, sessões. Consulte 22. Estrutura MVC da Web para obter mais detalhes.
IOC – Inversão de controle: “Não ligue para nós, nós ligaremos para você”
Aí vem a parte complicada. Como você pode ver, o IOC não faz parte do diagrama do módulo acima. O IOC faz parte do módulo Spring Core junto com muitas outras coisas.
O IOC está acima e além do Spring. É um princípio de design orientado a objetos que reduz a dependência e aumenta a modularidade e torna o programa extensível.
Como Martin Fowler diz, a inversão de controle é o princípio onde o fluxo de controle de um programa é invertido: em vez do controle do programador o fluxo de um programa, as fontes externas (estrutura, serviços, outros componentes) assumem o controle dele.
O IOC resolve os seguintes problemas de design.
- Para desacoplar a execução de uma tarefa da implementação.
- Para focar um módulo na tarefa para a qual foi projetado.
- Para liberar módulos de suposições sobre como outros sistemas fazem o que fazem e, em vez disso, dependem de c ontracts.
- Para evitar efeitos colaterais ao substituir um módulo.
Chegando ao que é Spring IOC.
Spring IOC é a maneira de implementar IOC na primavera. O COI pode ser alcançado de várias maneiras. A documentação diz –
É um processo pelo qual os objetos definem suas dependências, ou seja, os outros objetos com os quais trabalham, apenas por meio de argumentos do construtor, argumentos para um método de fábrica ou propriedades que são definidas na instância do objeto depois de construído ou devolvido de um método de fábrica. O contêiner então injeta essas dependências ao criar o bean. Este processo é fundamentalmente o inverso, daí o nome Inversão de controle (IoC), do próprio bean controlando a instanciação ou localização de suas dependências usando a construção direta de classes ou um mecanismo como o padrão Service Locator .
No Spring org.springframework.beans
e org.springframework.context
contém a implementação do IOC chamado Spring IOC Container. A interface org.springframework.context.ApplicationContext
representa o contêiner Spring IoC e é responsável por instanciar, configurar e montar os objetos (no Spring os objetos são Beans).
Leia 7. O contêiner IoC e BeanFactory (Spring Framework 4.3.7.RELEASE API) para detalhes completos.