Escolar Documentos
Profissional Documentos
Cultura Documentos
O QUE CDI?
CDI
API, que implementa a injeo de dependncia e contextos. Parte da especificao do Java EE 6 (JSR 299). Uma alternatva para os fameworks de injeo de dependncia como Spring ou Google Guice. Um sucessor do JBOSS Seam Framework.
CDI no Java EE 6
CDI
CDI
container que os associa a um contexto e gerencia seu ciclo de vida. container e so injetados no objeto. As referncias ente instncias tambm so inicializadas pelo
A configurao de criao do objeto e a injeo feita utlizando: Anotaes. Configurao de XML. Cdigo Java.
CDI
configuraes de um aplicatvo (por exemplo, em cenrios de teste, ambientes de integrao e a reutlizao em outas aplicaes ou contextos).
O que so contextos?
na CDI (durao e visibilidade) dos objetos.
Os contextos determinam o ciclo de vida dos componentes, O desenvolvedor configura o escopo usando anotaes: @ApplicatonScoped (aplicao). @SessionScoped (sesso do usurio). @ConversatonScoped (conversao). @RequestScoped (http request). @Dependent (depende do ciclo de vida do compomente referenciado).
CDI
CDI
No. Weld (implementao de referncia da CDI) pode ser Aplicaes Java SE. Aplicaes em execuo nos containers de servlets como o
CDI
CDI altamente integrado com: JSP Expression Language. Language). Java Server Faces (incluindo Facelets, JSF Expression Enterprise JavaBeans.
CDI
sejam acessveis diretamente por um inferface JSF ou JSP atavs de Unified Expression Language(EL).
Oferecer novo mecanismo de declarao de interceptadores facamente acoplados. Habilidade de decorar objetos injetados.
CDI
Um novo contexto web, somando ao Request, Applicaton Fornecer um conjunto de SPI, Service Provide Interface,
ASPECTOS DA CDI
CDI
Objeto gerencivel pela especificao, o Bean. Uma vez tendo uma aplicao CDI, todos os beans do projeto passam a ser gerenciados pelo servidor de aplicao.
ASPECTOS DA CDI
CDI
um bean (Typesafe Resoluton mecanismo de tpagem para DI), com algumas vantagens: Preveno conta erros de injeo em tempo de execuo. Apoio de ferramentas IDE para produtvidade. Clareza nos cdigos. Ente outas...
CDI
MANAGED BEANS
CDI
Na CDI, um bean do tpo Managed Bean qualquer classe java que: Seja concreta ou anotada com @Decorator. @Inject. Tenha pelo menos um constutor sem parmeto ou anotado com No seja um EJB. No seja uma JPA Entty. No seja uma classe interna. No implemente a interface javax.enterprise.inject.spi.Extension
SESSION BEANS
CDI
definidos pela especificao Enterprise JavaBeans. Quem define seu gerenciamento de estado sua especificao e no a CDI.
Contudo, todas as fncionalidades expostas para uma bean do tpo Managed Bean tambm vlida para o bean do tpo Session Bean.
CDI
Atavs de ts formas: Injeo por atibuto. Injeo por mtodo set. Injeo por constutor.
FUNCIONALIDADES
Injeo de dependncia bsica.
CDI
@Inject, @Qualifier, @Stereotype, @Alternatve, @Instance, @All, @Any Nome de componente. @Named Gerenciamento de contexto. @Dependent, @RequestScoped, @SessionScoped, @ConversatonScoped, @ApplicatonScoped, @Scope
FUNCIONALIDADES
Fabrica de objetos customizados. @Produces, @Disposes, InjectonPoint Eventos. @Event, @Observes Interceptadores/Decoradores.
CDI
ECOSSISTEMA
CDI
IMPLEMENTAES
CDI
Weld
CDI
Implementao de referncia da CDI. Documentao de referncia excelente. Evoluda a partr do core do Seam 2. Includa no GlassFish e Jboss AS. Pode ser usada com o Tomcat, Jetty. Pode ser usada em aplicaes Java SE.
CDI
CanDI
Caucho. CanDI forma o core do Resin. Configurao de tpagem por XML, compacta.
CDI
Usa anotaes como @TransactonAttribute, @Schedule, @Asynchronous, @RolesAllowed, @RunAs, @Lock, @Startup and @Remote. Incorporado a container de famework de testes que integram EJB, JPA com Junit.
CanDI e Resin
CDI
OpenWebBeans
CDI
Implementao da Apache includa no Gernimo. Intmamente relacionado com Apache OpenEJB. Grande integrao com o Tomcat junto com OpenEJB. Injeo estendida de objetos JMS (sesses, conexes de fbricas). Roda aplicaes Java SE. Portvel para extenses de grandes projetos da Apache .
OpenWebBeans e Geronimo
CDI
CDI
GlassFish v3
Totalmente apoiado pela Oracle. Mais antga runtme Java EE 6.
CDI
Suporte total a plataforma bem com ao Web Profile. Arquitetura modular baseado em OSGi. Pooling excelente, clustering e fncionalidades administatvas. Container embutdo para testar.
JBoss AS 6
CDI
Servidor de aplicao open source Java mais utlizado. Recentemente implementou Java EE 6 Web Profile TCK. Implementao completa do Profile Java EE 6. Pooling, caching, clustering administados pelo console. HornetQ excelente implementao JMS.
Resin 4
CDI
Servidor de aplicaes open soruce Java EE 6 Web Profile, concenta-se em ser rpido, leve. comunicao remota Hessian, message-driven beans e JMS. clustering, caching, suporta cloud, SSL. Executa PHP em Java. Servidor HTTP, proxy caching, load-balancing, pooling, Suporta agendamento, processamento assncrono,
Geronimo 3
CDI
Servidor de aplicao open source lencenciado pela Apache. Base para o IBM WebShere Community Editon. Profile TCK. Em breve tera a implementao completa do Java EE 6 Web OSGi, clustering, administao pelo console. OpenJPA, ActveMQ, CXF / Axi, Derby. Inclui Tomcat / Jetty, MyFaces, OpenWebBeans, OpenEJB, TomEE, Tomcat voltado para o Java EE 6 Web Profile.
Cade os Exemplos ??
Exemplo @Named
CDI
CDI
CDI
CDI
S isso de exemplo ??
Exemplo Controller
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
Exemplo Interceptor
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
Exemplo XML
CDI
CDI
Exemplo Alternatives
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
CDI
Obrigado