spring framework

Post on 26-May-2015

4.311 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Simplificando o desenvolvimento de aplicações java com 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

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

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.

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)

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

all(Acgei,webflow,mvc,osgi)

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

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

<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>

<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>

<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>

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

- queryForInt - queryForList - queryForObject

- executeMapemanto da Arvore de

SQLExceptions. Injeção de data source

<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>

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

Prove um mecanismo elegante de internacionalização.

Injeção de resourcesResourceBundleMessageSourceMultiplos Arquivos de resourceLocale

Eventos Atachados ao ApplicationContext:▪ContextRefreshedEvent▪ContextClosedEvent▪ RequestHandledEvent

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...

} }

}

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);

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.

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.

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

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

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.

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

ObjectsProxies

Suporte ao JunitSuporte a Mocks(EasyMock)AbstractDependencyInjectionSpringC

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

protectedAbstractTransactionalSpringContextT

ests(Rollback default)

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

Spring MVCSpring WebFlowSpring OSGISpring ACEGISpring WebServices

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

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

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

Perguntas?

Diego PachecoE-mail:

pacheco.diego@mercurio.comdmetallica@gmail.com

Blog:http://www.diego-

pacheco.blogspot.comFone:

51-8128 2904

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

top related