O documento resume os principais conceitos e módulos do framework Spring. Em 3 frases:
O Spring resolve problemas de complexidade dos EJB's e possui 20 módulos, implementando os padrões de Inversão de Controle e Injeção de Dependência. A estrutura do Spring inclui Core Container, AOP, integração a bancos de dados e web como MVC. O Spring traz alto ganho de produtividade ao desenvolvedor ao se encarregar de detalhes técnicos.
ASP.NET Core, .NET Core e EF Core: multiplataforma e otimizados para a nuvem
Aumento de Produtividade no Desenvolvimento de Aplicações em Java com Spring Framework
1. Aumento de Produtividade
no Desenvolvimento de
Aplicações em Java com
Spring Framework
Acadêmico: Fernando S. Godóy
Orientadora: Prof.ª Késsia R. C. Marchi
2. O que é o Spring
Framework
• Tecnologia que surgiu para resolver o problema de
complexidade dos EJB´s.
• Composto por cerca de 20 módulos.
• Alguns Recursos:
• Possui Recurso Lazy Initialization.
• Implementa os Padrões de Inversão de Controle e
Injeção de Dependência.
3. Inversão de Controle
Padrão em que designa-se um container ou outro
componente que possa controlar a execução.
4. Inversão de Controle
• No Spring os objetos são considerados Beans.
• Implementa o BeanFactory.
• Suporta dois padrões de objetos:
Singleton e Prototype.
5. Injeção de Dependência
• Padrão que diz que uma classe não deve
instanciar seus atributos, e sim que eles devem ser
injetados.
• Vantagens em utilizar:
• Baixo acoplamento entre classes.
• Código Limpo e eficaz, pois os objetos são
fornecidos com suas dependências.
6. Injeção de Dependência
• Suporta dois tipos de Injeção de Dependência:
• Constructor Injection que utiliza o próprio
construtor da classe podendo este ter
parâmetros ou não.
• Setter Injection utiliza os métodos setter para
efetuar a injeção.
• Pode ser feita por annottation ou por
configuração de um arquivo xml.
9. Core Container
• Beans e Core: Peças Fundamentais que implementam o
Container IOC. Implementam o BeanFactory.
• Context: Implementa uma forma de acesso ao objetos
tendo como ApplicationContext seu foco principal.
• Expression Language: Permite Manipular objetos em
tempo de execução.
10. AOP – Aspect Oriented Program
• AOP: Fornece suporte a AOP, permitindo a criação
de Pointcuts e Method-Interceptors.
• Aspects: Fornece integração com AspectJ.
• Instrumentation: Fornece classes de instrumentação
para ser usado em servidores de aplicativos.
11. Data Access/Integration
• JDBC: Fornece uma abstração de
JDBC.
• ORM: Fornece camadas de
integração para APIs de mapeamento
objeto relacional.
• OXM: Fornece uma abstração para
mapeamento objeto / XML.
• JMS: Contem recursos para produzir e
consumir mensagens.
• Transactions: Suporta o
gerenciamento de transações para
classes que implementa interfaces
especiais e POJO’s.
12. Web – MVC/Remoting
• WEB: Oferece recursos
básicos de integração Web.
• Portlet: Fornece uma
implementação MVC para
um ambiente Portlet.
• Servlet: Fornece uma clara
separação entre código de
domínio e formulários.
• Struts: Permite suporte para
integração com Struts.
13. Test
• Test: Fornece suporte para JUnit e
TestNG, fornecendo também objetos Mock para
testar seu código isoladamente.
14. Conclusão
Spring é um framework com um potencial
indiscutível, e sua aplicação em projetos impacta em
alto ganho de produtividade. Possui módulos
bastante completos para desenvolvedores de
aplicações Web e Desktop, permitindo ao
programador dedicar-se à implementação da regra
de negócio deixando que o Spring se encarregue do
resto do trabalho.
16. Bibliografia
• Balani, N. (2005) “Introduction to the Spring Framework”. <http://www.ibm.com/developerworks/web/library/wa-
spring1/> acesso em 21 de junho 2011.
• Calçado, P. (2008) “Curso Spring Framework”. <http://blog.flexdev.com.br/wp-content/uploads/spring/apostila-
spring.pdf> acesso em 20 de maio 2011.
• Carvalho, M. (2006) “Spring Framework Introdução”.
<http://www.imasters.com.br/artigo/4497/java/spring_framework_introducao/> acesso em 19 de junho 2011.
• Fowler, M. (2004) “Inversion of Control Containers and the Dependency Injection Pattern”.
<http://www.martinfowler.com/articles/injection.html> acesso em 20 de julho 2011.
• Johson, R. et Al (2011) “Spring Reference”. <http://static.springsource.org/spring/docs/3.1.x/spring-framework-
reference/htmlsingle/spring-framework-reference.html> acesso em 17 de julho de 2011.
• Pacheco, D. (2007) “Spring Framework 2.0 para Desenvolvimento de Aplicações em Java”.
<http://pt.scribd.com/doc/18517573/Spring-Framework-20-Diego-Pacheco> acesso em 24 de julho 2011.
• Schitini, I. et Al. (2011) “Spring Framework”. <http://kenai.com/projects/pos-sistemas-java-jf/sources/pos-java-
ufjf-2009-2011/content/02-Daves/SpringFramework.doc?rev=48> acesso em 04 de junho 2011.
• Weissmann, L. H. (2010) “Injeção de Dependência com Spring Framework”.
<http://www.itexto.net/devkico/?p=859> acesso em 26/07/2011.