jboss reference

Click here to load reader

Post on 29-Jul-2015

194 views

Category:

Documents

4 download

Embed Size (px)

TRANSCRIPT

Weld - Implementao de Referncia da JSR-299

JSR-299: O novo padro Java para injeo de dependncia e gerenciamento de estado contextual

Gavin King Pete Muir Dan Allen David Allen Traduo para o Italiano: Nicola Benaglia, Francesco Milesi Traduo para o Espanhol: Gladys Guerrero Traduo para o Coreano: Eun-Ju Ki, Traduo para o Chins Tradicional: Terry Chuang

Weld - Implementao de Refer...

Traduo para o Chins Simplificado: Sean Wu

Uma nota sobre nomeao e nomenclatura .................................................................................. vii I. Beans ............................................................................................................................... 1 1. Introduo ................................................................................................................ 3 1.1. O que um bean? ........................................................................................... 3 1.2. Arregaando as mangas ..................................................................................... 3 2. Mais sobre beans ...................................................................................................... 7 2.1. A anatomia de um bean ..................................................................................... 7 2.1.1. 2.1.2. 2.1.3. 2.1.4. Tipos e qualificadores de bean e injeo de dependncia .................................. 8 Escopo .............................................................................................. 10 Nome EL ............................................................................................ 11 Alternativos ......................................................................................... 11

2.1.5. Tipos para vinculao de interceptador ....................................................... 12 2.2. Quais categorias de classes so beans? ............................................................... 13 2.2.1. Managed beans .................................................................................... 13 2.2.2. Session beans ..................................................................................... 13 2.2.3. Mtodos produtores ............................................................................... 15 2.2.4. Campos produtores ............................................................................... 16 3. Exemplo de aplicao web JSF .................................................................................. 17 4. Injeo e pesquisa programtica de dependncias ......................................................... 21 4.1. Pontos de injeo ........................................................................................... 21 4.2. Como as injees so obtidas ............................................................................ 22 4.3. Anotaes de qualificadores ............................................................................... 23 4.4. Os qualificadores embutidos @Default e @Any ....................................................... 24 4.5. Qualificadores com membros ............................................................................. 25 4.6. Mltiplos qualificadores ..................................................................................... 25 4.7. Alternativos .................................................................................................... 26 4.8. Corrigindo dependncias no satisfeitas e ambguas ................................................. 26 4.9. Proxies clientes .............................................................................................. 27 4.10. Obtendo uma instncia contextual atravs de pesquisa programtica ........................... 28 4.11. O objeto InjectionPoint .................................................................................... 29 5. Escopos e contextos ................................................................................................ 33 5.1. Tipos de escopo ............................................................................................. 33 5.2. Escopos pr-definidos ...................................................................................... 34 5.3. O escopo de conversao ................................................................................. 34 5.3.1. Demarcao de contexto ........................................................................ 35 5.3.2. Propagao de conversao .................................................................... 35 5.3.3. Tempo limite de conversao ................................................................... 36 5.4. O pseudo-escopo singleton ................................................................................ 36 5.5. O pseudo-escopo dependente ............................................................................ 37 5.6. O qualificador @New ....................................................................................... 38 II. Primeiros Passos com Weld, a Implementao de Referncia de CDI .............................................. 39 6. Iniciando com o Weld ............................................................................................... 41 6.1. Pr-requisitos ................................................................................................. 41 6.2. Implantando no JBoss AS ................................................................................. 41 6.3. Implantando no GlassFish ................................................................................. 44 6.4. Implantando no Apache Tomcat .......................................................................... 45 6.4.1. Implantando com o Ant .......................................................................... 45 6.4.2. Implantando com o Maven ...................................................................... 46 6.5. Implantando no Jetty ........................................................................................ 47 7. Mergulhando nos exemplos do Weld ........................................................................... 49 7.1. O exemplo numberguess em detalhes .................................................................. 49 7.1.1. O exemplo numberguess no Apache Tomcat ou Jetty ..................................... 54 7.2. O exemplo numberguess para Java SE com Swing .................................................. 54

iii

Weld - Implementao de Refer...

7.2.1. Criando o projeto no Eclipse .................................................................... 55 7.2.2. Rodando o exemplo dentro do Eclipse ........................................................ 55 7.2.3. Rodando o exemplo a partir da linha de comando .......................................... 58 7.2.4. Entendendo o cdigo ............................................................................. 58 7.3. O exemplo translator em detalhe ......................................................................... 63 III. Baixo aclopamento com tipificao forte .................................................................................. 69 8. Mtodos produtores ................................................................................................. 71 8.1. 8.2. 8.3. 8.4. Escopo de um mtodo produtor .......................................................................... Injeo em mtodos produtores .......................................................................... Uso do @New em mtodos produtores ................................................................. Mtodos destruidores ....................................................................................... 72 72 73 73

9. Interceptadores ....................................................................................................... 75 9.1. Bindings de interceptadores ............................................................................... 75 9.2. Implementando interceptadores (interceptors) .......................................................... 76 9.3. Habiliatando interceptadores (interceptors) ............................................................. 76 9.4. Vinculando interceptadores com membros ............................................................. 77 9.5. Mltiplas anotaes de vinculao de interceptadores ............................................... 78 9.6. Herana de tipos vinculadores de interceptadores .................................................... 79 9.7. Uso de @Interceptors ...................................................................................... 79 10. Decoradores .......................................................................................................... 81 10.1. Objeto delegado ............................................................................................ 82 10.2. Habilitando decoradores .................................................................................. 83 11. Eventos ................................................................................................................ 85 11.1. Contedo dos eventos .................................................................................... 85 11.2. Observadores de eventos ................................................................................ 85 11.3. Produtores de Eventos .................................................................................... 86 11.4. Mtodos observadores condicionais .................................................................... 87 11.5. Qualificadores de eventos com membros ............................................................. 87 11.6. Mltiplos qualificadores de eventos ..................................................................... 88 11.7. Observadores transacionais .............................................................................. 89 12. Esteretipos ..........................................