37
Simplificando o desenvolvimento de aplicações java com Spring Framework

Spring Framework

Embed Size (px)

DESCRIPTION

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

Citation preview

Page 1: Spring Framework

Simplificando o desenvolvimento de aplicações java com Spring Framework

Page 2: Spring Framework

22 anos, 5 em TI, 2 em Java Técnico em Informática Cursando Ciências da ComputaçãoCertificado Sun SCJP 5.0Expresso

Mercúrio(www.mercurio.com.br)Outras Especialidades: VB,ASP,PHP.http://www.diego-

pacheco.blogspot.com

Page 3: Spring Framework

01. Introdução 02. visão da arquiterura e modulos 03. Container IoC 04. Configuração de injeções via XML 05. JdbcTemplate 06. Hibernate Dao Support 07. Internacionalização com MessageSources 08. Eventos 09. ResourceLoader 10. Validação 11. Gerenciamento de transações em alto nivel. 12. Envio de E-mail 13. Agendamento de Tarefas com JDK Task 14. @AspectJ suppor 15. Testing 16. Exportação de Serviços via RMI

Page 4: Spring Framework

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.

Page 5: Spring Framework

O spring não reinventa a roda mas, aprimora.

O Spring prove um container de IoCAbstração de diversos recursosSimplicidade e padronizaçãoFácil set upFacilmente customizávelQualidade + design patternsModular (somente o necessário)

Page 6: Spring Framework

Não intrusivoAOP(AspectJ)Exposição Remota J2EE Integração com frameworks Impede antí-patternsSpring for

all(Acgei,webflow,mvc,osgi)

Page 7: Spring Framework
Page 8: Spring Framework
Page 9: Spring Framework

org.springframework.beans.factory.BeanFactory representa o Container IoC do Spring.

Gerência de beans Injeção de dependênciasCiclo de vida lazy-initializationAutowiringEvents

Page 10: Spring Framework
Page 11: Spring Framework

<beans>

<bean id=“pessoa”

class=“com.diego.palestra.model.Pessoa” />

<bean id=“turma”

class=“com.diego.palestra.model.Turma” >

<property name=“aluno” ref=“pessoa” /> </bean>

</beans>

Page 12: Spring Framework

<beans>

<bean id=“empresa”

class=“com.diego.palestra.model.PessoaJuridica”

/>

<bean id=“turma”

class=“com.diego.palestra.model.Turma” >

<property name=“aluno” ref=“empresa” /> </bean>

</beans>

Page 13: Spring Framework

<beans

<bean id="inheritedTestBean" class="org.springframework.beans.TestBean“ abstract="true"

> <property name="name" value="parent"/>

<property name="age" value="1"/>

</bean>

<bean id="inheritsWithDifferentClass“ class="org.springframework.beans.DerivedTestBean" parent="inheritedTestBean”

>

</beans>

Page 14: Spring Framework

É um template para Jdbc do Spring.Prove diversas facilidades como:

- queryForInt - queryForList - queryForObject

- executeMapemanto da Arvore de

SQLExceptions. Injeção de data source

Page 15: Spring Framework

<beans > <bean id="corporateEventDao" class="com.example.JdbcCorporateEventDao“> <property name="dataSource" ref="dataSource"/> </bean>

<bean id="dataSource" destroy-method="close" class="org.apache.commons.dbcp.BasicDataSource"> <property name="driverClassName" value="${jdbc.driverClassName}“/> <property name="url" value="${jdbc.url}"/> <property name="username" value="${jdbc.username}"/> <property name="password" value="${jdbc.password}"/> </bean>

</beans>

Page 16: Spring Framework

Prove atravez do HibernateTemplate metodos utilitários que simplificam as chamadas a API do Hibernate.

Suporte a transações.Acesso a SessionFactoryTransação DeclarativaHibernate3 ou Hibernate2

Page 17: Spring Framework

Prove um mecanismo elegante de internacionalização.

Injeção de resourcesResourceBundleMessageSourceMultiplos Arquivos de resourceLocale

Page 18: Spring Framework

Eventos Atachados ao ApplicationContext:▪ContextRefreshedEvent▪ContextClosedEvent▪ RequestHandledEvent

Page 19: Spring Framework

public class BlackListNotifier implements ApplicationListener {

private String notificationAddress; public void setNotificationAddress(String notificationAddress) { this.notificationAddress = notificationAddress; } public void onApplicationEvent(ApplicationEvent evt) {

if (evt instanceof BlackListEvent) { // notify appropriate person...

} }

}

Page 20: Spring Framework

Resource template = ctx.getResource("classpath:some/resource/path/myTemplate.txt);

ou

Resource template = ctx.getResource("file:/some/resource/path/myTemplate.txt);

ou

Resource template = ctx.getResource("http://myhost.com/resource/path/myTemplate.txt);

Page 21: Spring Framework

org.springframework.validation.Validator interface:

supports(Class) – Esta classe pode ser validada?

validate(Object, org.springframework.validation.Errors) – Valida o objeto e registra os erros.

Page 22: Spring Framework

ValidationUtilsPropertyEditors: possibilidade de

trabalhar de forma diferenciada apartir das definições do spring.

BeanWrapper: habilidade de adicionar o Java beans com PropertyChangeListeners e VetoableChangeListeners sem ter que alterar as classes existentes.

Page 23: Spring Framework

Multiplas APIs: JTA, JDBC, Hibernate, JPA, and JDO.

Mais poderoso e produtivo que EJB CMT

ScalabilidadeTransações locais via JdbcAlto e Baixo niveis em abordagemTransações Declarativas via AOP

Page 24: Spring Framework
Page 25: Spring Framework

Aprimoração da API do JavaMail SimpleMailMessage JavaMailSender Velocity-based Templates FileSystemResource paraAttachments Injeção e configurações

Page 26: Spring Framework

ScheduledTimerTask MethodInvokingTimerTaskFactoryBean TimerFactoryBean 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.

Page 27: Spring Framework

Utilização de Aspectos com AspectJ Interceptors@Aspect Interceptor baseados em annotationsAbstraçãoTransações Injeções configuradas de Domains

ObjectsProxies

Page 28: Spring Framework
Page 29: Spring Framework

Suporte ao JunitSuporte a Mocks(EasyMock)AbstractDependencyInjectionSpringC

ontextTestsAnnotations(@ExpectedException) Injeção automatica de propriedades

protectedAbstractTransactionalSpringContextT

ests(Rollback default)

Page 30: Spring Framework

Exposição/inportação de serviços via:▪ RMI▪ HTTP invoker(Java serialization via HTTP)▪ Hessian(HTTP-Based)▪ Burlap(XML-Based)▪ JAX RPC(Web Services),XFire▪ JMS

Page 31: Spring Framework

Spring MVCSpring WebFlowSpring OSGISpring ACEGISpring WebServices

Page 32: Spring Framework

Ibatis,JDO JMXEJBStruts,JSF,Tiles,Web WorkVelocity & FreemakerXSLTPDF/Excel Jasper ReportsDynamic Language(Groovy,JRuby)

Page 33: Spring Framework

Modelo alternativo ao EJBContainer IoCFácil AprendizadoModelo unico(Abstração)PatternsQualidade + simplicidadeCustomizavelModular Integração com quase tudo

Page 34: Spring Framework

Prove DesacoplamentoDeixa a aplicação mais escalávelPadronizaçãoProdutividadeOrientado a interfaces e POJOsExceptions UncheckedDocumentação impecavelForum muito completo

Page 35: Spring Framework

Perguntas?

Page 36: Spring Framework

Diego PachecoE-mail:

[email protected]@gmail.com

Blog:http://www.diego-

pacheco.blogspot.comFone:

51-8128 2904

Page 37: Spring Framework

Simplificando o desenvolvimento de aplicações java com Spring Framework