Post on 26-May-2015
description
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