SlideShare a Scribd company logo
1 of 11
Download to read offline
Um mundo Java sem XML
Victor Oliveira Nascimento - victor.olinasc
27 de Novembro, SP - iMasters
Configurações em Python e Erlang:

LGIG={
 OGN
   'eso' 1
    vrin: ,
   'ial_xsiglges:Fle
    dsbeeitn_ogr' as,
   'itr' {
    fles:
     'eur_eu_as' {
      rqiedbgfle:
       '):'jnouislgRqieeuFle
        (' dag.tl.o.eurDbgas'
     }
   }
}



[bs,[
 {os
   {ah ".Ciaoos}
    pt, ./hcgBs",
   {plctos [acr],
    apiain, bsoe}
   {suelcl,"n}
    asm_oae e"]
}]
Configurações em Java:

<en xls"tp/wwsrnfaeokogshm/en"
 bas mn=ht:/w.pigrmwr.r/ceabas
   xlsxi"tp/www.r/01XLceaisac"xlscnet"tp/wwsrnfaeokogshm
    mn:s=ht:/w.3og20/MShm-ntne mn:otx=ht:/w.pigrmwr.r/cea
   xlst=ht:/w.pigrmwr.r/ceat"xlsjb=ht:/w.pigrmwr.r/ceajb
    mn:x"tp/wwsrnfaeokogshm/x mn:dc"tp/wwsrnfaeokogshm/dc
   xishmLcto=ht:/w.pigrmwr.r/ceabas
    s:ceaoain"tp/wwsrnfaeokogshm/en
      ht:/w.pigrmwr.r/ceabassrn-en-..s
      tp/wwsrnfaeokogshm/en/pigbas31xd
      ht:/w.pigrmwr.r/ceacnet
      tp/wwsrnfaeokogshm/otx
      ht:/w.pigrmwr.r/ceacnetsrn-otx-..s"
      tp/wwsrnfaeokogshm/otx/pigcnet31xd>

   <otx:opnn-cnbs-akg=b.o.oceeouin"/
    cnetcmoetsa aepcae"rcmcnrtsltos >



   <encas"r.pcecmosdc.aiDtSuc"
    ba ls=ogaah.omn.bpBscaaore
      dsrymto=coe i=dtSuc"
       eto-ehd"ls" d"aaore>
      <rprynm=dieCasae vle"r.2Die"/
       poet ae"rvrlsNm" au=ogh.rvr >
      <rprynm=ul vle"dch:/bntrD; /
       poet ae"r" au=jb:2~d/auaB" >
      <rprynm=uenm"vle"a /
       poet ae"srae au=s" >
      <rprynm=pswr"vle"a /
       poet ae"asod au=s" >
   <ba>
    /en
<bas
 /en>
Qual o problema?



· Python: listas, tuplas, dicionários
· Ruby: listas, tuplas, dicionários
· Erlang: listas, tuplas, tuplas nomeadas
· Lisp: parênteses, parênteses, parênteses



· Java: XML??? Properties???
Nenhum problema! Annotations!

ipr jvxsrltSrltotxEet
 mot aa.eve.eveCnetvn;
ipr jvxsrltSrltotxLsee;
 mot aa.eve.eveCnetitnr
ipr jvxsrltantto.eLsee;
 mot aa.eve.noainWbitnr

@eLsee
 Wbitnr
pbi casLgigntaieFle ipeet SrltotxLsee {
 ulc ls ognIiilzritr mlmns eveCnetitnr

    @vrie
     Oerd
    pbi vi cnetetoe(eveCnetvn ag){
     ulc od otxDsrydSrltotxEet r0
    }

    @vrie
     Oerd
    pbi vi cnetntaie(eveCnetvn ag){
     ulc od otxIiilzdSrltotxEet r0
    }
}
Muita hora nessa calma!




· Apenas para configurações inerentes da aplicação



· Diferenças entre ambientes devem ser externalizadas
  para ferramentas que gerenciem os ambientes (Puppet,
  Juju?)
Algumas vantagens da abordagem


· Propriedades type-safe
· Habilidade de customizar a incialização dos frameworks
· Não depender das capacidades do namespace
· Evita conhecer novas semânticas
· Javadoc

Algumas desvantagens

· Configuração compilada (???)
Exemplo: WAR sem XML

· Spring 3.1
· Jersey 1.15
· Apache Shiro (segurança) 1.2.1
· Hibernate 4.1

Sem nada de:

· application-context.xml
· web.xml
· spring-security.xml
· persistence.xml
Aplicação de exemplo

https://github.com/victorolinasc/java-xml-free
Algumas das principais anotações e classes utilizadas:


 Nome                                                    Framework
 javax.servlet.annotation.WebListener                    Servlet 3.0
 org.springframework.web.WebApplicationInitializer       Spring Framework
                                                         3.1
 org.springframework.context.annotation.Configuration    Spring Framework
                                                         3.1
Obrigado :)

Contato:

· Victor Oliveira Nascimento
· victor.olinasc [arroba] gmail [ponto] com
· https://github.com/victorolinasc
· https://bitbucket.org/cs_victor_nascimento
Um Mundo Java Sem XML

More Related Content

What's hot

Presentta: usando Node.js na prática
Presentta: usando Node.js na práticaPresentta: usando Node.js na prática
Presentta: usando Node.js na práticaNando Vieira
 
Node.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasNode.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasRodrigo Branas
 
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix
 
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010lucashungaro
 
Node.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasNode.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasRodrigo Branas
 
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBCZabbix BR
 
A Biblioteca cURL
A Biblioteca cURLA Biblioteca cURL
A Biblioteca cURLricardophp
 
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasNode.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasRodrigo Branas
 
Um site em 5 minutos com bottle.py
Um site em 5 minutos com bottle.pyUm site em 5 minutos com bottle.py
Um site em 5 minutos com bottle.pyGiovane Liberato
 
Threads tasks e o tal do thread pool
Threads tasks e o tal do thread poolThreads tasks e o tal do thread pool
Threads tasks e o tal do thread poolFabrício Rissetto
 
Atendendo Milhares de Requisições com o Play Framework 2 - v2
Atendendo Milhares de Requisições com o Play Framework 2 - v2Atendendo Milhares de Requisições com o Play Framework 2 - v2
Atendendo Milhares de Requisições com o Play Framework 2 - v2Paulo Siqueira
 
Primeiros passos com a API do Zabbix - Webinar JLCP
Primeiros passos com a API do Zabbix - Webinar JLCPPrimeiros passos com a API do Zabbix - Webinar JLCP
Primeiros passos com a API do Zabbix - Webinar JLCPRobert Silva
 
Conectando o Android a outros sistemas
Conectando o Android a outros sistemasConectando o Android a outros sistemas
Conectando o Android a outros sistemasElias Junior
 

What's hot (20)

Presentta: usando Node.js na prática
Presentta: usando Node.js na práticaPresentta: usando Node.js na prática
Presentta: usando Node.js na prática
 
Node.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo BranasNode.js - #5 - Process - Rodrigo Branas
Node.js - #5 - Process - Rodrigo Branas
 
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and ZabbixZabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
Zabbix Conference LatAm 2016 - Andre Deo - SNMP and Zabbix
 
JavaScript Hacks
JavaScript HacksJavaScript Hacks
JavaScript Hacks
 
Puppet 3 em 2017
Puppet 3 em 2017Puppet 3 em 2017
Puppet 3 em 2017
 
Realtime com node.js e socket.io
Realtime com node.js e socket.ioRealtime com node.js e socket.io
Realtime com node.js e socket.io
 
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
Coisas que aprendi e quero passar adiante - RubyConf Brasil 2010
 
Vagrant + Puppet
Vagrant + PuppetVagrant + Puppet
Vagrant + Puppet
 
DevOps Braga #5
DevOps Braga #5DevOps Braga #5
DevOps Braga #5
 
Node.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo BranasNode.js - #3 - Global Objects - Rodrigo Branas
Node.js - #3 - Global Objects - Rodrigo Branas
 
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
1º Meetup Zabbix Meetup do Recife: Francys Nivea - LLD ODBC
 
A Biblioteca cURL
A Biblioteca cURLA Biblioteca cURL
A Biblioteca cURL
 
Conteudo curso php
Conteudo curso phpConteudo curso php
Conteudo curso php
 
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo BranasNode.js - #2 - Sistema de Módulos - Rodrigo Branas
Node.js - #2 - Sistema de Módulos - Rodrigo Branas
 
Um site em 5 minutos com bottle.py
Um site em 5 minutos com bottle.pyUm site em 5 minutos com bottle.py
Um site em 5 minutos com bottle.py
 
Threads tasks e o tal do thread pool
Threads tasks e o tal do thread poolThreads tasks e o tal do thread pool
Threads tasks e o tal do thread pool
 
Aula de Node
Aula de NodeAula de Node
Aula de Node
 
Atendendo Milhares de Requisições com o Play Framework 2 - v2
Atendendo Milhares de Requisições com o Play Framework 2 - v2Atendendo Milhares de Requisições com o Play Framework 2 - v2
Atendendo Milhares de Requisições com o Play Framework 2 - v2
 
Primeiros passos com a API do Zabbix - Webinar JLCP
Primeiros passos com a API do Zabbix - Webinar JLCPPrimeiros passos com a API do Zabbix - Webinar JLCP
Primeiros passos com a API do Zabbix - Webinar JLCP
 
Conectando o Android a outros sistemas
Conectando o Android a outros sistemasConectando o Android a outros sistemas
Conectando o Android a outros sistemas
 

Similar to Um Mundo Java Sem XML

Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarTiago Antônio da Silva
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebElenilson Vieira
 
Javascript no SAPO e libsapojs
Javascript no SAPO e libsapojsJavascript no SAPO e libsapojs
Javascript no SAPO e libsapojscodebits
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsJulio Betta
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6danielfcampos
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - BrazilStephen Chin
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Anderson Araújo
 
Akka no Just Java 2012
Akka no Just Java 2012Akka no Just Java 2012
Akka no Just Java 2012Paulo Siqueira
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2michellobo
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04Carlos Santos
 
Novidades de Java EE 7
Novidades de Java EE 7Novidades de Java EE 7
Novidades de Java EE 7pt_programar
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBALuciano Borges
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmGuilherme Blanco
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Dickson S. Guedes
 

Similar to Um Mundo Java Sem XML (20)

Curso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como ProgramarCurso JavaScript - Aula de Introdução como Programar
Curso JavaScript - Aula de Introdução como Programar
 
Sistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias WebSistema S2DG e Tecnologias Web
Sistema S2DG e Tecnologias Web
 
JavaCC
JavaCCJavaCC
JavaCC
 
Tag Libraries e JSTL
Tag Libraries e JSTLTag Libraries e JSTL
Tag Libraries e JSTL
 
Javascript no SAPO e libsapojs
Javascript no SAPO e libsapojsJavascript no SAPO e libsapojs
Javascript no SAPO e libsapojs
 
Java para iniciantes
Java para iniciantesJava para iniciantes
Java para iniciantes
 
Introdução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on RailsIntrodução ao Desenvolvimento WEB com Ruby on Rails
Introdução ao Desenvolvimento WEB com Ruby on Rails
 
Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6Uma abordagem ao Java EE 6
Uma abordagem ao Java EE 6
 
55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil55 New Things in Java 7 - Brazil
55 New Things in Java 7 - Brazil
 
Como escolher o Framework Java para web?
Como escolher o Framework Java para web?Como escolher o Framework Java para web?
Como escolher o Framework Java para web?
 
Akka no Just Java 2012
Akka no Just Java 2012Akka no Just Java 2012
Akka no Just Java 2012
 
ASP.Net Módulo 2
ASP.Net   Módulo 2ASP.Net   Módulo 2
ASP.Net Módulo 2
 
LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04LabMM3 - Aula teórica 04
LabMM3 - Aula teórica 04
 
Como criar Custom Tags
Como criar Custom TagsComo criar Custom Tags
Como criar Custom Tags
 
Novidades de Java EE 7
Novidades de Java EE 7Novidades de Java EE 7
Novidades de Java EE 7
 
Apresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBAApresentação Ruby no Dojo da UFBA
Apresentação Ruby no Dojo da UFBA
 
Ruby On Rails Regis
Ruby On Rails RegisRuby On Rails Regis
Ruby On Rails Regis
 
Desenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine OrmDesenvolvimento Agil Com Doctrine Orm
Desenvolvimento Agil Com Doctrine Orm
 
Linguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação JavaLinguagem Java- Iniciação à programação Java
Linguagem Java- Iniciação à programação Java
 
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
Estripando o Elefante - (Trabalhando com extensões no PostgreSQL)
 

More from iMasters

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroiMasters
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesiMasters
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesiMasters
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...iMasters
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesiMasters
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...iMasters
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsiMasters
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...iMasters
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudiMasters
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza LeiteiMasters
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesiMasters
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosiMasters
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeiMasters
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle MonteiroiMasters
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujoriMasters
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaiMasters
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiiMasters
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...iMasters
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisiMasters
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoiMasters
 

More from iMasters (20)

O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani MonteiroO que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
O que você precisa saber para modelar bancos de dados NoSQL - Dani Monteiro
 
Postgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio TellesPostgres: wanted, beloved or dreaded? - Fabio Telles
Postgres: wanted, beloved or dreaded? - Fabio Telles
 
Por que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen MoraesPor que minha query esta lenta? - Suellen Moraes
Por que minha query esta lenta? - Suellen Moraes
 
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
Relato das trincheiras: o dia a dia de uma consultoria de banco de dados - Ig...
 
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalvesORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
ORMs heróis ou vilões dentro da arquitetura de dados? - Otávio gonçalves
 
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
SQL e NoSQL trabalhando juntos: uma comparação para obter o melhor de ambos -...
 
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra MartinsArquitetando seus dados na prática para a LGPD - Alessandra Martins
Arquitetando seus dados na prática para a LGPD - Alessandra Martins
 
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
O papel do DBA no mundo de ciência de dados e machine learning - Mauro Pichil...
 
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana ChahoudDesenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
Desenvolvimento Mobile Híbrido, Nativo ou Web: Quando usá-los - Juliana Chahoud
 
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 Use MDD e faça as máquinas trabalharem para você - Andreza Leite Use MDD e faça as máquinas trabalharem para você - Andreza Leite
Use MDD e faça as máquinas trabalharem para você - Andreza Leite
 
Entendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita BernardesEntendendo os porquês do seu servidor - Talita Bernardes
Entendendo os porquês do seu servidor - Talita Bernardes
 
Backend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana ArnosBackend performático além do "coloca mais máquina lá" - Diana Arnos
Backend performático além do "coloca mais máquina lá" - Diana Arnos
 
Dicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato GroffeDicas para uma maior performance em APIs REST - Renato Groffe
Dicas para uma maior performance em APIs REST - Renato Groffe
 
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
7 dicas de desempenho que equivalem por 21 - Danielle Monteiro
 
Quem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio MaujorQuem se importa com acessibilidade Web? - Mauricio Maujor
Quem se importa com acessibilidade Web? - Mauricio Maujor
 
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da SilvaService Mesh com Istio e Kubernetes - Wellington Figueira da Silva
Service Mesh com Istio e Kubernetes - Wellington Figueira da Silva
 
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto PascuttiErros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
Erros: Como eles vivem, se alimentam e se reproduzem? - Augusto Pascutti
 
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...Elasticidade e engenharia de banco de dados para alta performance  - Rubens G...
Elasticidade e engenharia de banco de dados para alta performance - Rubens G...
 
Construindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina KarklisConstruindo aplicações mais confiantes - Carolina Karklis
Construindo aplicações mais confiantes - Carolina Karklis
 
Monitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe RegalgoMonitoramento de Aplicações - Felipe Regalgo
Monitoramento de Aplicações - Felipe Regalgo
 

Um Mundo Java Sem XML

  • 1. Um mundo Java sem XML Victor Oliveira Nascimento - victor.olinasc 27 de Novembro, SP - iMasters
  • 2. Configurações em Python e Erlang: LGIG={ OGN 'eso' 1 vrin: , 'ial_xsiglges:Fle dsbeeitn_ogr' as, 'itr' { fles: 'eur_eu_as' { rqiedbgfle: '):'jnouislgRqieeuFle (' dag.tl.o.eurDbgas' } } } [bs,[ {os {ah ".Ciaoos} pt, ./hcgBs", {plctos [acr], apiain, bsoe} {suelcl,"n} asm_oae e"] }]
  • 3. Configurações em Java: <en xls"tp/wwsrnfaeokogshm/en" bas mn=ht:/w.pigrmwr.r/ceabas xlsxi"tp/www.r/01XLceaisac"xlscnet"tp/wwsrnfaeokogshm mn:s=ht:/w.3og20/MShm-ntne mn:otx=ht:/w.pigrmwr.r/cea xlst=ht:/w.pigrmwr.r/ceat"xlsjb=ht:/w.pigrmwr.r/ceajb mn:x"tp/wwsrnfaeokogshm/x mn:dc"tp/wwsrnfaeokogshm/dc xishmLcto=ht:/w.pigrmwr.r/ceabas s:ceaoain"tp/wwsrnfaeokogshm/en ht:/w.pigrmwr.r/ceabassrn-en-..s tp/wwsrnfaeokogshm/en/pigbas31xd ht:/w.pigrmwr.r/ceacnet tp/wwsrnfaeokogshm/otx ht:/w.pigrmwr.r/ceacnetsrn-otx-..s" tp/wwsrnfaeokogshm/otx/pigcnet31xd> <otx:opnn-cnbs-akg=b.o.oceeouin"/ cnetcmoetsa aepcae"rcmcnrtsltos > <encas"r.pcecmosdc.aiDtSuc" ba ls=ogaah.omn.bpBscaaore dsrymto=coe i=dtSuc" eto-ehd"ls" d"aaore> <rprynm=dieCasae vle"r.2Die"/ poet ae"rvrlsNm" au=ogh.rvr > <rprynm=ul vle"dch:/bntrD; / poet ae"r" au=jb:2~d/auaB" > <rprynm=uenm"vle"a / poet ae"srae au=s" > <rprynm=pswr"vle"a / poet ae"asod au=s" > <ba> /en <bas /en>
  • 4. Qual o problema? · Python: listas, tuplas, dicionários · Ruby: listas, tuplas, dicionários · Erlang: listas, tuplas, tuplas nomeadas · Lisp: parênteses, parênteses, parênteses · Java: XML??? Properties???
  • 5. Nenhum problema! Annotations! ipr jvxsrltSrltotxEet mot aa.eve.eveCnetvn; ipr jvxsrltSrltotxLsee; mot aa.eve.eveCnetitnr ipr jvxsrltantto.eLsee; mot aa.eve.noainWbitnr @eLsee Wbitnr pbi casLgigntaieFle ipeet SrltotxLsee { ulc ls ognIiilzritr mlmns eveCnetitnr @vrie Oerd pbi vi cnetetoe(eveCnetvn ag){ ulc od otxDsrydSrltotxEet r0 } @vrie Oerd pbi vi cnetntaie(eveCnetvn ag){ ulc od otxIiilzdSrltotxEet r0 } }
  • 6. Muita hora nessa calma! · Apenas para configurações inerentes da aplicação · Diferenças entre ambientes devem ser externalizadas para ferramentas que gerenciem os ambientes (Puppet, Juju?)
  • 7. Algumas vantagens da abordagem · Propriedades type-safe · Habilidade de customizar a incialização dos frameworks · Não depender das capacidades do namespace · Evita conhecer novas semânticas · Javadoc Algumas desvantagens · Configuração compilada (???)
  • 8. Exemplo: WAR sem XML · Spring 3.1 · Jersey 1.15 · Apache Shiro (segurança) 1.2.1 · Hibernate 4.1 Sem nada de: · application-context.xml · web.xml · spring-security.xml · persistence.xml
  • 9. Aplicação de exemplo https://github.com/victorolinasc/java-xml-free Algumas das principais anotações e classes utilizadas: Nome Framework javax.servlet.annotation.WebListener Servlet 3.0 org.springframework.web.WebApplicationInitializer Spring Framework 3.1 org.springframework.context.annotation.Configuration Spring Framework 3.1
  • 10. Obrigado :) Contato: · Victor Oliveira Nascimento · victor.olinasc [arroba] gmail [ponto] com · https://github.com/victorolinasc · https://bitbucket.org/cs_victor_nascimento