Ecosistema spring a_plataforma_enterprise_jav
Upcoming SlideShare
Loading in...5
×
 

Ecosistema spring a_plataforma_enterprise_jav

on

  • 3,012 views

Ecosistema Spring: a plataforma enterprise Java livre

Ecosistema Spring: a plataforma enterprise Java livre

Statistics

Views

Total Views
3,012
Views on SlideShare
2,974
Embed Views
38

Actions

Likes
0
Downloads
35
Comments
0

3 Embeds 38

http://www.mgjug.com.br 27
http://mgjug.com.br 10
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Ecosistema spring a_plataforma_enterprise_jav Ecosistema spring a_plataforma_enterprise_jav Presentation Transcript

  • @julioviegas Engenheiro de Software
  • 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
  • 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 for Business
  • 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
  • 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");
  • 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)
  • O Spring Framework JavaConfig @Configuration @Bean @Lazy @Configuration public class AppConfig { @Bean @Lazy public CaixaEletronicoService buildCaixaEletronicoService() { CaixaEletronicoService s = new CaixaEletronicoService(); s.setDao(...); return s; } }
  • 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 { ... }
  • 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; }
  • 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
  • Spring Roo Padroes JCP JPA Bean Validation JSPX Padroes de fato AspectJ Spring e produtos relacionados Rest / Tiles JUnit / Selenium
  • 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 ?
  • 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
  • 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
  • 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
  • Grails
  • 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
  • Grails Produtividade Convencao sobre configuracao Agil Fundacoes solidas Comunidade Integracao ao Java Extensivel via plugins: 441(!!!) plugins
  • 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
  • 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
  • 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
  • Grails Groovy Tipos dinamicos Closures Sobrecarga de operadores RegEx nativo JUnit nativo Suporte a linguagens de marcacao Expressoes dentro de strings
  • 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}" }
  • 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"));
  • 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, ...
  • 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).
  • 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 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.
  • 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
  • ??? Obrigado! :) @julioviegas Engenheiro de Software