Spring Framework

4.503 visualizações

Publicada em

Presentation of Spring Framework 2.x.x course at T@rget Trust.

2 comentários
1 gostou
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
4.503
No SlideShare
0
A partir de incorporações
0
Número de incorporações
158
Ações
Compartilhamentos
0
Downloads
221
Comentários
2
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Spring Framework

  1. 1. Simplificando o desenvolvimento de aplicações java com Spring Framework
  2. 2. <ul><li>22 anos, 5 em TI, 2 em Java </li></ul><ul><li>Técnico em Informática </li></ul><ul><li>Cursando Ciências da Computação </li></ul><ul><li>Certificado Sun SCJP 5.0 </li></ul><ul><li>Expresso Mercúrio( www.mercurio.com.br ) </li></ul><ul><li>Outras Especialidades: VB,ASP,PHP. </li></ul><ul><li>http://www.diego-pacheco.blogspot.com </li></ul>
  3. 3. <ul><li>01. Introdução </li></ul><ul><li>02. visão da arquiterura e modulos </li></ul><ul><li>03. Container IoC </li></ul><ul><li>04. Configuração de injeções via XML </li></ul><ul><li>05. JdbcTemplate </li></ul><ul><li>06. Hibernate Dao Support </li></ul><ul><li>07. Internacionalização com MessageSources </li></ul><ul><li>08. Eventos </li></ul><ul><li>09. ResourceLoader </li></ul><ul><li>10. Validação </li></ul><ul><li>11. Gerenciamento de transações em alto nivel. </li></ul><ul><li>12. Envio de E-mail </li></ul><ul><li>13. Agendamento de Tarefas com JDK Task </li></ul><ul><li>14. @AspectJ suppor </li></ul><ul><li>15. Testing </li></ul><ul><li>16. Exportação de Serviços via RMI </li></ul>
  4. 4. <ul><li>Spring é um framework Java feito pela interface21 . O Spring prove uma série de facilidades e aprimoramentos dos recursos da linguagem Java e os seus principais frameworks. </li></ul>
  5. 5. <ul><li>O spring não reinventa a roda mas, aprimora. </li></ul><ul><li>O Spring prove um container de IoC </li></ul><ul><li>Abstração de diversos recursos </li></ul><ul><li>Simplicidade e padronização </li></ul><ul><li>Fácil set up </li></ul><ul><li>Facilmente customizável </li></ul><ul><li>Qualidade + design patterns </li></ul><ul><li>Modular (somente o necessário) </li></ul>
  6. 6. <ul><li>Não intrusivo </li></ul><ul><li>AOP(AspectJ) </li></ul><ul><li>Exposição Remota </li></ul><ul><li>J2EE </li></ul><ul><li>Integração com frameworks </li></ul><ul><li>Impede antí-patterns </li></ul><ul><li>Spring for all(Acgei,webflow,mvc,osgi) </li></ul>
  7. 9. <ul><li>org.springframework.beans.factory.BeanFactory representa o Container IoC do Spring. </li></ul><ul><li>Gerência de beans </li></ul><ul><li>Injeção de dependências </li></ul><ul><li>Ciclo de vida </li></ul><ul><li>lazy-initialization </li></ul><ul><li>Autowiring </li></ul><ul><li>Events </li></ul>
  8. 11. <ul><li><beans> </li></ul><ul><li><bean </li></ul><ul><li> id=“pessoa” </li></ul><ul><li>class=“com.diego.palestra.model.Pessoa” </li></ul><ul><li>/> </li></ul><ul><li><bean </li></ul><ul><li> id=“turma” </li></ul><ul><li>class=“com.diego.palestra.model.Turma” </li></ul><ul><li>> </li></ul><ul><li><property name=“aluno” ref=“ pessoa ” /> </li></ul><ul><li></bean> </li></ul><ul><li></beans> </li></ul>
  9. 12. <ul><li><beans> </li></ul><ul><li><bean </li></ul><ul><li> id=“empresa” </li></ul><ul><li>class=“com.diego.palestra.model.PessoaJuridica” </li></ul><ul><li>/> </li></ul><ul><li><bean </li></ul><ul><li> id=“turma” </li></ul><ul><li>class=“com.diego.palestra.model.Turma” </li></ul><ul><li>> </li></ul><ul><li><property name=“aluno” ref=“ empresa ” /> </li></ul><ul><li></bean> </li></ul><ul><li></beans> </li></ul>
  10. 13. <ul><li><beans </li></ul><ul><li><bean id=&quot;inheritedTestBean&quot; </li></ul><ul><li> class=&quot;org.springframework.beans.TestBean“ </li></ul><ul><li> abstract=&quot;true&quot; </li></ul><ul><li>> </li></ul><ul><li><property name=&quot;name&quot; value=&quot;parent&quot;/> </li></ul><ul><li> <property name=&quot;age&quot; value=&quot;1&quot;/> </li></ul><ul><li></bean> </li></ul><ul><li><bean id=&quot;inheritsWithDifferentClass“ class=&quot;org.springframework.beans.DerivedTestBean&quot; parent=&quot; inheritedTestBean ” </li></ul><ul><li>> </li></ul><ul><li></beans> </li></ul>
  11. 14. <ul><li>É um template para Jdbc do Spring. </li></ul><ul><li>Prove diversas facilidades como: </li></ul><ul><li>- queryForInt </li></ul><ul><li>- queryForList </li></ul><ul><li>- queryForObject </li></ul><ul><li>- execute </li></ul><ul><li>Mapemanto da Arvore de SQLExceptions. </li></ul><ul><li>Injeção de data source </li></ul>
  12. 15. <ul><li><beans > </li></ul><ul><li><bean id=&quot;corporateEventDao&quot; class=&quot;com.example.JdbcCorporateEventDao“ </li></ul><ul><li>> </li></ul><ul><li><property name=&quot; dataSource &quot; ref=&quot;dataSource&quot;/> </li></ul><ul><li></bean> </li></ul><ul><li><bean id=&quot;dataSource&quot; </li></ul><ul><li>destroy-method=&quot;close&quot; class=&quot;org.apache.commons.dbcp.BasicDataSource&quot;> <property name=&quot;driverClassName&quot; value=&quot;${jdbc.driverClassName}“ </li></ul><ul><li>/> </li></ul><ul><li><property name=&quot;url&quot; value=&quot;${jdbc.url}&quot;/> </li></ul><ul><li><property name=&quot;username&quot; value=&quot;${jdbc.username}&quot;/> </li></ul><ul><li><property name=&quot;password&quot; value=&quot;${jdbc.password}&quot;/> </li></ul><ul><li></bean> </li></ul><ul><li></beans> </li></ul>
  13. 16. <ul><li>Prove atravez do HibernateTemplate metodos utilitários que simplificam as chamadas a API do Hibernate. </li></ul><ul><li>Suporte a transações. </li></ul><ul><li>Acesso a SessionFactory </li></ul><ul><li>Transação Declarativa </li></ul><ul><li>Hibernate3 ou Hibernate2 </li></ul>
  14. 17. <ul><li>Prove um mecanismo elegante de internacionalização. </li></ul><ul><li>Injeção de resources </li></ul><ul><li>ResourceBundleMessageSource </li></ul><ul><li>Multiplos Arquivos de resource </li></ul><ul><li>Locale </li></ul>
  15. 18. <ul><li>Eventos Atachados ao ApplicationContext: </li></ul><ul><ul><ul><li>ContextRefreshedEvent </li></ul></ul></ul><ul><ul><ul><li>ContextClosedEvent </li></ul></ul></ul><ul><ul><ul><li>RequestHandledEvent </li></ul></ul></ul>
  16. 19. <ul><li>public class BlackListNotifier implements ApplicationListener { </li></ul><ul><li>private String notificationAddress ; </li></ul><ul><li>public void setNotificationAddress(String notificationAddress ) { this . notificationAddress = notificationAddress ; </li></ul><ul><li>} </li></ul><ul><li> public void onApplicationEvent(ApplicationEvent evt ) { </li></ul><ul><li>if ( evt instanceof BlackListEvent) { </li></ul><ul><li>// notify appropriate person... </li></ul><ul><li>} </li></ul><ul><li> } </li></ul><ul><li>} </li></ul>
  17. 20. <ul><li>Resource template = ctx.getResource(&quot;classpath:some/resource/path/myTemplate.txt); </li></ul><ul><li>ou </li></ul><ul><li>Resource template = ctx.getResource(&quot;file:/some/resource/path/myTemplate.txt); </li></ul><ul><li>ou </li></ul><ul><li>Resource template = ctx.getResource(&quot;http://myhost.com/resource/path/myTemplate.txt); </li></ul>
  18. 21. <ul><li>org.springframework.validation.Validator interface: </li></ul><ul><li>supports(Class) – Esta classe pode ser validada? </li></ul><ul><li>validate(Object, org.springframework.validation.Errors) – Valida o objeto e registra os erros. </li></ul>
  19. 22. <ul><li>ValidationUtils </li></ul><ul><li>PropertyEditors: possibilidade de trabalhar de forma diferenciada apartir das definições do spring. </li></ul><ul><li>BeanWrapper : habilidade de adicionar o Java beans com PropertyChangeListeners e VetoableChangeListeners sem ter que alterar as classes existentes. </li></ul>
  20. 23. <ul><li>Multiplas APIs: JTA, JDBC, Hibernate, JPA, and JDO. </li></ul><ul><li>Mais poderoso e produtivo que EJB CMT </li></ul><ul><li>Scalabilidade </li></ul><ul><li>Transações locais via Jdbc </li></ul><ul><li>Alto e Baixo niveis em abordagem </li></ul><ul><li>Transações Declarativas via AOP </li></ul>
  21. 25. <ul><li>Aprimoração da API do JavaMail </li></ul><ul><li>SimpleMailMessage </li></ul><ul><li>JavaMailSender </li></ul><ul><li>Velocity-based Templates </li></ul><ul><li>FileSystemResource paraAttachments </li></ul><ul><li>Injeção e configurações </li></ul>
  22. 26. <ul><li>ScheduledTimerTask </li></ul><ul><li>MethodInvokingTimerTaskFactoryBean </li></ul><ul><li>TimerFactoryBean </li></ul><ul><li>Suporte a agendamento mais polido e com mais recursos pode ser feito atravez do Quartz o qual o Spring prove integração e facilidades também. </li></ul>
  23. 27. <ul><li>Utilização de Aspectos com AspectJ </li></ul><ul><li>Interceptors </li></ul><ul><li>@Aspect </li></ul><ul><li>Interceptor baseados em annotations </li></ul><ul><li>Abstração </li></ul><ul><li>Transações </li></ul><ul><li>Injeções configuradas de Domains Objects </li></ul><ul><li>Proxies </li></ul>
  24. 29. <ul><li>Suporte ao Junit </li></ul><ul><li>Suporte a Mocks(EasyMock) </li></ul><ul><li>AbstractDependencyInjectionSpringContextTests </li></ul><ul><li>Annotations(@ExpectedException) </li></ul><ul><li>Injeção automatica de propriedades protected </li></ul><ul><li>AbstractTransactionalSpringContextTests(Rollback default) </li></ul>
  25. 30. <ul><li>Exposição/inportação de serviços via: </li></ul><ul><ul><ul><li>RMI </li></ul></ul></ul><ul><ul><ul><li>HTTP invoker( Java serialization via HTTP) </li></ul></ul></ul><ul><ul><ul><li>Hessian(HTTP-Based) </li></ul></ul></ul><ul><ul><ul><li>Burlap(XML-Based) </li></ul></ul></ul><ul><ul><ul><li>JAX RPC(Web Services),XFire </li></ul></ul></ul><ul><ul><ul><li>JMS </li></ul></ul></ul>
  26. 31. <ul><li>Spring MVC </li></ul><ul><li>Spring WebFlow </li></ul><ul><li>Spring OSGI </li></ul><ul><li>Spring ACEGI </li></ul><ul><li>Spring WebServices </li></ul>
  27. 32. <ul><li>Ibatis,JDO </li></ul><ul><li>JMX </li></ul><ul><li>EJB </li></ul><ul><li>Struts,JSF,Tiles,Web Work </li></ul><ul><li>Velocity & Freemaker </li></ul><ul><li>XSLT </li></ul><ul><li>PDF/Excel </li></ul><ul><li>Jasper Reports </li></ul><ul><li>Dynamic Language(Groovy,JRuby) </li></ul>
  28. 33. <ul><li>Modelo alternativo ao EJB </li></ul><ul><li>Container IoC </li></ul><ul><li>Fácil Aprendizado </li></ul><ul><li>Modelo unico(Abstração) </li></ul><ul><li>Patterns </li></ul><ul><li>Qualidade + simplicidade </li></ul><ul><li>Customizavel </li></ul><ul><li>Modular </li></ul><ul><li>Integração com quase tudo </li></ul>
  29. 34. <ul><li>Prove Desacoplamento </li></ul><ul><li>Deixa a aplicação mais escalável </li></ul><ul><li>Padronização </li></ul><ul><li>Produtividade </li></ul><ul><li>Orientado a interfaces e POJOs </li></ul><ul><li>Exceptions Unchecked </li></ul><ul><li>Documentação impecavel </li></ul><ul><li>Forum muito completo </li></ul>
  30. 35. <ul><li>Perguntas? </li></ul>
  31. 36. <ul><li>Diego Pacheco </li></ul><ul><li>E-mail: </li></ul><ul><li>[email_address] </li></ul><ul><li>[email_address] </li></ul><ul><li>Blog: </li></ul><ul><li>http://www.diego-pacheco.blogspot.com </li></ul><ul><li>Fone: </li></ul><ul><li>51-8128 2904 </li></ul>
  32. 37. <ul><li>Simplificando o desenvolvimento de aplicações java com Spring Framework </li></ul>

×