Spring: Um suite de novas opções para Java EE Alberto J Lemos (Dr. Spock) Instrutor Globalcode 1 Globalcode – Open4Education Agenda > Sobre o Spring Framework > Escopo de integração com Java EE e outros frameworks > Sobre o Spring portfolio: Um suite de produtos > Sobre o SpringSource Application Platform 2 Globalcode – Open4Education Agenda > Sobre o Spring Framework > Escopo de integração com Java EE e outros frameworks > Sobre o Spring portfolio: Um suite de produtos > Sobre o SpringSource Application Platform 3 Globalcode – Open4Education O que é Spring Framework > Um framework de código aberto e uso livre, sob licença Apache, criado por Rod Johnson; > Implementa um contêiner de injeção de dependências (DI) e inversão de controle (IoC); > Um framework para programação orientada a aspectos (AOP); > Um framework para integração de aplicações com serviços Java EE; > Um framework para integração com outros frameworks que implementam serviços enterprise. 4 Globalcode – Open4Education O que o Spring não é! > Não é uma tecnologia padrão mantida pelo JCP; > Não é um concorrente da plataforma Java EE; > Não é uma nova tecnologia; > Não é a reinvenção da roda! 5 Globalcode – Open4Education Para o que serve? > Promover boas práticas de desenvolvimento; > Promover testabilidade; > Garantir que o código seja flexível para substituir tecnologias de maneira transparente; > Utilizar em aplicativos desktop algumas facilidades do mundo corporativo; > Desenvolvimento através de um modelo de componentização baseado em classes Java simples (POJO). 6 Globalcode – Open4Education Para o que não serve? > Tornar um código existente em um código bem estruturado; > Gerenciar recursos; > Garantir a qualidade do código; 7 Globalcode – Open4Education Agenda > Sobre o Spring Framework > Escopo de integração com Java EE e outros frameworks > Sobre o Spring portfolio: Um suite de produtos > Sobre o SpringSource Application Platform 8 Globalcode – Open4Education Spring Framework > Disponível no arquivo spring.jar 9 Globalcode – Open4Education Spring Framework > Disponível no arquivo spring.jar Core: Implementa o contêiner IoC; 10 Globalcode – Open4Education Spring Framework > Disponível no arquivo spring.jar Web: Recursos para implementação de aplicações Web: integração com frameworks MVC, implementação própria de MVC e integração com tecnologias de visualização; 11 Globalcode – Open4Education Spring Framework > Disponível no arquivo spring.jar DAO: Classes utilitárias para desenvolvimento de DAO's com JDBC e gerenciamento de transações; 12 Globalcode – Open4Education Spring Framework > Disponível no arquivo spring.jar AOP: Disponibiliza o conceito de aspectos via AOP Alliance e AspectJ para integrar os POJO's com os serviços enterprise; 13 Globalcode – Open4Education Spring Framework > Disponível no arquivo spring.jar ORM: Implementa o suporte para integração com frameworks de mapeamento objeto/relacional. 14 Globalcode – Open4Education Spring Framework > Disponível no arquivo spring.jar Java EE: Classes utilitárias para integração com serviços Java EE; 15 Globalcode – Open4Education Spring Framework > Disponível no arquivo spring.jar Remoting: Expõe os métodos dos POJO's para invocação remota; 16 Globalcode – Open4Education Java EE e Spring > O framework promove o uso dos serviços Java EE em componentes desenvolvidos como POJO e sem EJB's; > Serviços usados: JDBC, JPA, JTA, JMS, JCA, JMX, JavaMail e JNDI; > Anotações Java EE suportadas: 17 Globalcode – Open4Education Java EE e Spring > Permite a configuração e invocação de EJB's (2.1 e 3) como beans no contexto Spring; > Permite expor os componentes como Web Services através de JAX-WS (com anotações @WebService e @WebMethod); > Integra com serviços Java EE implementados por servidores de aplicações ou por frameworks externos (Ex.: ActiveMQ, ObjectWeb JTOM, commons-dbcp, etc). 18 Globalcode – Open4Education Agenda > Sobre o Spring Framework > Escopo de integração com Java EE e outros frameworks > Sobre o Spring portfolio: Um suite de produtos > Sobre o SpringSource Application Platform 19 Globalcode – Open4Education Spring Portfolio > Composto por diversos projetos que complementam o Spring Framework; > Projetos que utilizam as mesmas boas práticas sugeridas pelo Spring; > Alguns recursos disponibilizados: Segurança, integração com outros frameworks, processos batch, OSGi e ferramentas de desenvolvimento; > Alguns projetos estão consolidados e maduros; > Outros projetos estão em desenvolvimento (milestone ou 1.0.0). 20 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. 21 Globalcode – Open4Education Spring Portfolio Security: > Um suite deSpring produtos paraSegurança aplicações baseadas no Spring. declarativa via XML ou anotações com suporte a AOP e integração com tecnologias de segurança: JAAS, LDAP, DAO, OpenID, CAS, X509, Windows NTLM; 22 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring Web Service: Suporte a Web Services a partir da definição do XML Schema e WSDL (Data Contract e Service Contract); 23 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring Web Flow: Suporte ao controle de fluxo de navegação Web, integração com JSF, conversação e Ajax; 24 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Dynamic Modules for OSGi: Simplifica o uso da API OSGi através do Spring com POJO's; 25 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring Modules: Projeto guardachuva que implementa a integração com diversos outros frameworks e ferramentas; 26 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring Rich Client: Recursos para desenvolvimento desktop com Swing e Spring; 27 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring JavaConfig: Suporte a configuração dos beans programaticamente sem usar XML ou anotações; 28 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring LDAP: Classes utilitárias para interação com um serviço de Lightweight Directory Access Protocol (LDAP); 29 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring Integration: Implementa o suporte para integração de sistemas via mensagens (EAI e Enterprise Integration Patterns); 30 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring Batch: Suporte a execução de processos em batch de longa duração; 31 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring IDE: Plugin para incrementar produtividade durante o desenvolvimento com o Eclipse; 32 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring BeanDoc: Ferramenta para gerar documentação semelhante ao Javadoc; 33 Globalcode – Open4Education Spring Portfolio > Um suite de produtos para aplicações baseadas no Spring. Spring .NET: Porte de parte do Spring Framework para desenvolvimento de aplicações .NET! 34 Globalcode – Open4Education Agenda > Sobre o Spring Framework > Escopo de integração com Java EE e outros frameworks > Sobre o Spring portfolio: Um suite de produtos > Sobre o SpringSource Application Platform 35 Globalcode – Open4Education Spring Application Server 36 Globalcode – Open4Education Application Platform > Servidor de aplicações em desenvolvimento pelo SpringSource; > Ainda na versão 1.0 beta; > Baseado em OSGi (R4.1) para modulalização via Eclipse Equinox (OSGi Spec RI); > Suportará o conceito de profiles para facilitar a customização da plataforma; > Suporta empacotamento da aplicação em: OSGi Bundles, Java EE WAR, Web Modules e Platform Archive (PAR); 37 Globalcode – Open4Education Application Platform > Spring Framework embutido (obviamente!); > Suporte a aplicações Java EE Web via Tomcat embutido; > Monitoramento via ferramenta Spring Application Management Suite (produto SpringSource); > Suporte ao desenvolvimento via SpringSource Tool Suite (Branded Eclipse); > Um repositório está disponível com diversas bibliotecas para download e reempacotadas como OSGi Bundles. 38 Globalcode – Open4Education Conclusão > O Spring Framework disponibiliza os serviços Java EE via AOP para os POJO's; > Permite o uso de AOP na aplicação; > O framework não concorre com o Java EE; > Vale a pena usar alguns projetos do Spring portfolio; > O servidor de aplicações e a plataforma Spring estão nascendo; > O Spring Framework ainda é uma boa opção mesmo com o EJB 3 em cena; 39 Globalcode – Open4Education Conclusão A plataforma Spring pretende oferecer uma alternativa completa e concorrente à plataforma Java EE, mantendo compatibilidade. 40 Globalcode – Open4Education Perguntas & Respostas 41 Globalcode – Open4Education Mais sobre o assunto > Spring Framework. http://www.springframework.org/about > Spring Framework Projects (Suite). http://www.springframework.org/projects > SpringSource Application Platform. http://www.springsource.com/products/suite/applicationplatform > SpringSource. http://www.springsource.com/ > Java EE Platform. http://java.sun.com/javaee/ 42 Globalcode – Open4Education