@julioviegas
Engenheiro de Software
Palestrante
  ~15 anos trabalhando com tecnologia

  Instrutor, arquiteto, mentor e engenheiro de software e
  eletronica
...
Agenda
 O Spring Framework

 Spring Roo

 Spring Tool Suite

 Grails

 CloudFoundry
O Spring Framework
O Spring Framework
 IoC / DI

 Abstract Factory

 Cola

 Integracao

 Corporativo de fato
O Spring Framework
 Webflow

 Security

 dm

 BlazeDS

 Web Service

 JavaConfig

 .NET
O Spring Framework
 Integration

 Batch

 IDE
O Spring Framework
 ToolSuite

 tc Server / Insight

 dm Server

 Hyperic

 CloudFoundry

 SalesForce

 Google App Engine ...
O Spring Framework
 Java SE 5+
    Generics
    Eventos agora tipados
    Novidades na parte de executors

 Spring Express...
O Spring Framework
   Rest
     URI Template
@RequestMapping("/hotels/{hotel}/bookings/{booking}")
@PathVariable String ho...
O Spring Framework
 Java EE 6
    JSF 2.0
    JPA 2.0
    Bean Validation
    @Async / @Assinchronous (EJB 3.1)

 Suporte ...
O Spring Framework
 JavaConfig
    @Configuration
    @Bean
    @Lazy
   @Configuration
   public class AppConfig {

     ...
O Spring Framework
 JavaConfig
    Crie suas anotacoes, excelente para arquitetura!

         @Service
         @Scope("re...
O Spring Framework
 Bean Validation (JSR-303)
    Valide seus objetos, independente da camada(UI, model,
    persistencia,...
Spring Roo
 Mais outro gerador? Nao, ele eh tb um gerenciador!

 Baseado em aspectos

 Design time only: sem dependencias ...
Spring Roo
 Padroes JCP
    JPA
    Bean Validation
    JSPX

 Padroes de fato
    AspectJ
    Spring e produtos relaciona...
Spring Roo
 JDK 5 ou superior

 Maven 2.0.9 ou superior

 Roo + Roo Shell + Add-ons default

 Opcionais
   Banco de dados(...
Spring Roo
 Quando usar?
   Preferencia em novos projetos
   Possivel, mas dificil, em projetos legados
   Arquitetura bem...
Spring Tool Suite
  Projetos Spring; assistentes para beans e configuracao
  XML

  Configuracao grafica do Spring

  Supo...
Spring Tool Suite
  Suporte aos servidores de aplicacao Java EE mais usados

  Suporte avancado ao dm Server

  Suporte av...
Grails
Grails

  Crie sua app de modo facil:

  1.   grails create-app my-project
  2.   grails create-domain-class book
  3.   g...
Grails

  Produtividade

  Convencao sobre configuracao

  Agil

  Fundacoes solidas

  Comunidade

  Integracao ao Java

...
Grails

  Desenvolvimento interativo, sem restart de JVM ou app
  server

  Scaffolding dinamico ou estatico(codigo fisico...
Grails

  Controllers geram URLs amigaveis baseadas no modelo

  Views sao selecionadas utilizando padroes de nomes

  Con...
Grails

  Groovy
     OO Dinamico
     Integra bem com codigo Java
     Alguma compatibilidade sintatica com Java
     Com...
Grails

  Groovy
     Tipos dinamicos
     Closures
     Sobrecarga de operadores
     RegEx nativo
     JUnit nativo
    ...
Grails
  public class Todo {
    String name
    String note
  }

  def todos = [
  new Todo(name:"1", note:"one"),
  new ...
Grails
import java.util.List;                    public void setName(String name) {          todos.add(new Todo("2", "two"...
CloudFoundry

 Cloud Computing
    Infra-estrutura escalável e altamente disponível.
    Pronta para uso.
    Uso de tecno...
CloudFoundry
 Plataforma(PaaS) gratuíta, onde você pode instalar
 aplicações baseadas em Springframework, com imagens
 pré...
CloudFoundry
CloudFoundry

 Arquiteturas disponiveis para apps
CloudFoundry

 Deploy com STS

 Prefira usar uma infra local para testar sua app(pois é de
 graça!).

 CloudFoundry em bet...
CloudFoundry

 Suporte a messageria, outros bancos e caching no futuro.

 Maior flexibilidade e opções de configuração via...
???
Obrigado! :)

        @julioviegas
Engenheiro de Software
Ecosistema spring a_plataforma_enterprise_jav
Upcoming SlideShare
Loading in …5
×

Ecosistema spring a_plataforma_enterprise_jav

2,489 views
2,390 views

Published on

Ecosistema Spring: a plataforma enterprise Java livre

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
2,489
On SlideShare
0
From Embeds
0
Number of Embeds
39
Actions
Shares
0
Downloads
37
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Ecosistema spring a_plataforma_enterprise_jav

  1. 1. @julioviegas Engenheiro de Software
  2. 2. Palestrante ~15 anos trabalhando com tecnologia Instrutor, arquiteto, mentor e engenheiro de software e eletronica Participa de comunidades de usuarios: RSJUG, XP-RS, CEJUG, Open4Education, NoSQLBr... Sun Certified Trainer, SCEA 1 e 5, SCDJWS 1.4 e 5, SCWCD 1.4, SCBCD 5, SCJP 5, SCJA 1 Engenheiro de Software da Summa Technologies e Instrutor Globalcode
  3. 3. Agenda O Spring Framework Spring Roo Spring Tool Suite Grails CloudFoundry
  4. 4. O Spring Framework
  5. 5. O Spring Framework IoC / DI Abstract Factory Cola Integracao Corporativo de fato
  6. 6. O Spring Framework Webflow Security dm BlazeDS Web Service JavaConfig .NET
  7. 7. O Spring Framework Integration Batch IDE
  8. 8. O Spring Framework ToolSuite tc Server / Insight dm Server Hyperic CloudFoundry SalesForce Google App Engine for Business
  9. 9. O Spring Framework Java SE 5+ Generics Eventos agora tipados Novidades na parte de executors Spring Expression Language(SpEL) #{ expr } SPI #{ systemProperties['user.region'] } Uso em XML ou anotacoes: @Value("#{dbConfBean. dbKeyGenType}") systemProperties, systemEnvironment, beans Web: contextParameters, contextAttributes, request, session JSF: param, initParam, facesContext
  10. 10. O Spring Framework Rest URI Template @RequestMapping("/hotels/{hotel}/bookings/{booking}") @PathVariable String hotel Views por MimeType application/xml application/atom+xml application/rss+xml application/json RestTemplate restTemplate.getForObject("http://example.com/hotels/ {hotel}/bookings/{booking}", String.class, "42", "21");
  11. 11. O Spring Framework Java EE 6 JSF 2.0 JPA 2.0 Bean Validation @Async / @Assinchronous (EJB 3.1) Suporte completo ao JEE 6 no Spring 3.1 Servlet 3.0 APIs avancadas de concorrencia(JSR-236) Anotacoes DI(JSR-330)
  12. 12. O Spring Framework JavaConfig @Configuration @Bean @Lazy @Configuration public class AppConfig { @Bean @Lazy public CaixaEletronicoService buildCaixaEletronicoService() { CaixaEletronicoService s = new CaixaEletronicoService(); s.setDao(...); return s; } }
  13. 13. O Spring Framework JavaConfig Crie suas anotacoes, excelente para arquitetura! @Service @Scope("request") @Transaction(rollbackFor=Exception.class) @Retention(RetentionPolicy.RUNTIME) public @interface MyService { ... } @MyService public class EstoqueService { ... }
  14. 14. O Spring Framework Bean Validation (JSR-303) Valide seus objetos, independente da camada(UI, model, persistencia, ...) public class PersonForm { @NotNull @Size(max=64) @Min(20) private String name; }
  15. 15. Spring Roo Mais outro gerador? Nao, ele eh tb um gerenciador! Baseado em aspectos Design time only: sem dependencias em tempo de execucao Spring de forma expressa Scaffolding(tipo Rails) Roo Shell Customizavel via AddOns
  16. 16. Spring Roo Padroes JCP JPA Bean Validation JSPX Padroes de fato AspectJ Spring e produtos relacionados Rest / Tiles JUnit / Selenium
  17. 17. Spring Roo JDK 5 ou superior Maven 2.0.9 ou superior Roo + Roo Shell + Add-ons default Opcionais Banco de dados(vem com Hypersonic/H2 embutidos) IDE ? STS facilita muito Mouse ?
  18. 18. Spring Roo Quando usar? Preferencia em novos projetos Possivel, mas dificil, em projetos legados Arquitetura bem definida, difundida e integrada Referencias forum.springsource.org/showthread.php?t=71985 notasingleshot.blogspot.com twitter.com/benalexau twitter.com/schmidtstefan
  19. 19. Spring Tool Suite Projetos Spring; assistentes para beans e configuracao XML Configuracao grafica do Spring Suporte a Spring 3.0, incluindo @Configuration e @Bean Desenvolvimento visual para Spring Webflow e Batch Assistente para projetos Roo e Roo shell interno Spring Application blue prints e validacoes de melhores praticas
  20. 20. Spring Tool Suite Suporte aos servidores de aplicacao Java EE mais usados Suporte avancado ao dm Server Suporte avancado ao tc Server Instale sua app na nuvem com CloudFoundry. Futuramente com as nuvens Google App Engine for Business e Salesforce Integracao com alguns produtos VMWare Varios suportes a funcionalidades OSGi Eh sua porta de entrada para o uso facil de produtos Spring
  21. 21. Grails
  22. 22. Grails Crie sua app de modo facil: 1. grails create-app my-project 2. grails create-domain-class book 3. grails create-controller my.project.Book 4. grails run-app 5. http://localhost:8080/my-project/book
  23. 23. Grails Produtividade Convencao sobre configuracao Agil Fundacoes solidas Comunidade Integracao ao Java Extensivel via plugins: 441(!!!) plugins
  24. 24. Grails Desenvolvimento interativo, sem restart de JVM ou app server Scaffolding dinamico ou estatico(codigo fisico) Troque frustracao e desenvolvimento lento por produtividade e diversao! GORM CRUD basico gerado Finders basicos gerados
  25. 25. Grails Controllers geram URLs amigaveis baseadas no modelo Views sao selecionadas utilizando padroes de nomes Controllers usam o suporte de binding do Spring Services(regras de negocio) sao geradas e transacionais por padrao DI automatica: Controller / Service / Model GSP e Grails Tags Layouts baseados no Sitemesh
  26. 26. Grails Groovy OO Dinamico Integra bem com codigo Java Alguma compatibilidade sintatica com Java Compilado para bytecode GDK estende JDK Parenteses e ponto-e-virgula sao opcionais return, getters e setters implicitos == eh equals() Modificador de acesso padrao eh public Apenas RuntimeExceptions
  27. 27. Grails Groovy Tipos dinamicos Closures Sobrecarga de operadores RegEx nativo JUnit nativo Suporte a linguagens de marcacao Expressoes dentro de strings
  28. 28. Grails public class Todo { String name String note } def todos = [ new Todo(name:"1", note:"one"), new Todo(name:"2", note:"two"), new Todo(name:"3", note:"three") ] todos.each { println "${it.name} ${it.note}" }
  29. 29. Grails import java.util.List; public void setName(String name) { todos.add(new Todo("2", "two")); import java.util.ArrayList; todos.add(new Todo("3","three")); import java.util.Iterator; this.name = name; } for(Iterator iter = todos.iterator();iter. public class Todo { hasNext();) { private String name; public String getNote() { Todo todo = (Todo)iter.next(); private String note; System.out.println(todo.getName() + " return note; " + todo.getNote()); public Todo() {} } } } public Todo(String name, String note){ public void setNote(String note) { } this.name = name; this.note = note; this.note = note; } } public String getName() { public static void main(String[] args){ return name; List todos = new ArrayList(); } todos.add(new Todo("1", "one"));
  30. 30. CloudFoundry Cloud Computing Infra-estrutura escalável e altamente disponível. Pronta para uso. Uso de tecnologias como virtualização, armazenamento distribuído e recursos elásticos como CPU, memória, disco, ...
  31. 31. CloudFoundry Plataforma(PaaS) gratuíta, onde você pode instalar aplicações baseadas em Springframework, com imagens pré-configuradas(Java 1.6, Apache HTTP Server 2.2, tc Server 6.0, MySQL 5.0 e CentOS 5.2) para receber suas aplicações Spring e adaptador para uso de Amazon EC2 como provedor de Cloud Computing. CloudTools Código usado no CloudFoundry(monte seu próprio CloudFoundry!). Possibilidade de usar EC2 e Terremark vCloudExpress(outro provedor de Cloud Computing).
  32. 32. CloudFoundry
  33. 33. CloudFoundry Arquiteturas disponiveis para apps
  34. 34. CloudFoundry Deploy com STS Prefira usar uma infra local para testar sua app(pois é de graça!). CloudFoundry em beta. EC2 ainda é caro para infra simples e somente vantajoso para sites com alta demanda. CloudFoundry possui apenas duas opções de topologia e poucas opções avançadas de configuração de recursos disponíveis no EC2.
  35. 35. CloudFoundry Suporte a messageria, outros bancos e caching no futuro. Maior flexibilidade e opções de configuração via EC2, como monitoramento, S3(storage elástico), balanceamento... SSH(via EC2). É springframework: você pode embutir(embed) outros serviços via ApplicationContext como ActiveMQ, Ehcache... SalesForce Google App Engine for Business
  36. 36. ??? Obrigado! :) @julioviegas Engenheiro de Software

×