| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 13/04/2010 22:05:44
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
Gostaria de saber se é possivel fazer injeção de depencia em uma ambiente JEE de forma indireta....
algo como
1#
é possivel fazer isso? com o container CDI ?? ou a única forma é algo como
2#
Bom gostaria de conseguir fazer da forma 1#, tem como ?? (obs.: eu sei que da pra usar essa anotação em outro lugares como métodos, e etcs, mas gostaria mesmo era de fazer da forma 1#)
Obs.: eu sei que da pra fazer com spring, mas gostaria de fazer sem saber qual é a implementação do container do JEE
This message was edited 3 times. Last update was at 13/04/2010 22:24:50
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2010 08:08:44
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Eu faço isso com o spring. Vou postar a solucao pra você pq a única área que fica específica é a classe de configuração, o resto aparentemente é indepente do seu container IoC. Mas antes de ver minha solução, vc pode ver o @Configurable do Spring e o Salve. Ambos são solucoes para este problema.
Segue código
no application context
exemplo de uso
This message was edited 4 times. Last update was at 14/04/2010 08:26:36
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2010 08:16:46
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
ai fica a questão neste seu código... quem é ApplicationContext ??
vc só consegue pegar beans a partir dele... e ele não á parte do CDI ou é ?
não há essa interface (ou classe) no JEE
por favor posta o código com os imports ^^ preu ver meió
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2010 08:24:50
|
Thiago Senna
GUJ Master
![[Avatar]](/images/avatar/78719f11fa2df9917de3110133506521.jpg)
Membro desde: 11/02/2005 08:08:02
Mensagens: 1595
Offline
|
Lavieri wrote:ai fica a questão neste seu código... quem é ApplicationContext ??
Eu estou utilizando Spring. ApplicationContext é onde estão todos os beans gerenciados pelo spring.
Lavieri wrote:vc só consegue pegar beans a partir dele... e ele não á parte do CDI ou é ?
não há essa interface (ou classe) no JEE
ApplicationContext é especifico do spring, no entanto não é exposto em sua aplicacao. A unica classe que sua aplicacao precisa conhecer é a interface NResources. A implementacao de NResources é especifico para cada container de injecao de dependencias. Aqui no caso, vc está criando sua própria abstracao para separar seu sistema do do container ioc.
Lavieri wrote:por favor posta o código com os imports ^^ preu ver meió
Ok, eu editarei o posto anterior
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2010 08:25:54
|
Leonardo3001
GUJ Ranger
Membro desde: 04/07/2007 18:28:58
Mensagens: 975
Offline
|
Aparentemente, não existe nada do gênero para se buscar "managed beans" programaticamente. Ou é via annotations ou XML, e nada mais. Também não tem um único ponto de declaração de dependências, como o applicationScope.xml do Spring ou o Module do Guice. Por causa disso, existem um monte de conceitos complicados por cima, como os decorators e observers.
Pra falar a verdade, se eu tenho a opção de escolher, coloco Spring ou Guice na frente de CDI. Justamente por oferecer um ponto único de configuração, e por ter meios de busca programática de beans.
|
Leonardo Veríssimo
-------------------------------------------------
Objectzilla |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2010 09:27:08
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
é para um framework... para rodar em um ambiente JEE6 .... não posso supor que estou trabalhando com spring ou algo do genero...
EU consegui fazer, + ou - .... funciona para a parte do CDI, mas não funciona bem de dentro dos EJBs / ManagedBeans ... ainda não entendi bem o pq
funciona bem.... quando estou fora do EJB
neste ponto funciona... lá na view quando coloco #{ha.bla} recebo o nome do Item de id = 10
porem c tento buscar o container dentro do EJB, levo null pointer na cara....
Acredito que a solução seja essa.... e que realmente, não posso injetar algo que não é @Stateless ou @Statefull dentro do EJB... pensei que podia, mas pelo visto não pode....
mas o meu maior problema, é que o @ManageBean também não aceita a injeção... =/
na verdade eu não consegui dar @Inject em nada dentro do ManagedBean
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2010 11:34:37
|
breno500as
Virtual Machine Man
Membro desde: 11/10/2007 17:53:07
Mensagens: 614
Localização: Belo Horizonte - MG
Offline
|
Lavieri wrote: porem c tento buscar o container dentro do EJB, levo null pointer na cara....
Lavieri, li rapidamente sobre esta nova especificação e posso estar errado no que estou falando... Mas creio que este novo CDI não é suportado nem em EJBs nem em Entidades(@Entity), o que resulta no seu null... É suportado apenas nos "ManagedBeans" .. (classes java comuns) ...
|
Sun Certified Java Programmer 5.0
Sun Certified Web Component Developer 5.0
Sun Certified Business Component Developer 5.0 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2010 12:26:17
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
breno500as wrote:
Lavieri wrote: porem c tento buscar o container dentro do EJB, levo null pointer na cara....
Lavieri, li rapidamente sobre esta nova especificação e posso estar errado no que estou falando... Mas creio que este novo CDI não é suportado nem em EJBs nem em Entidades(@Entity), o que resulta no seu null... É suportado apenas nos "ManagedBeans" .. (classes java comuns) ...
O fato é que o contrario funciona...
realmente não consegui injetar dentro do EJB, algo que estava fora,
mas estando fora, consigo injetar qualquer coisa, inclusive EJBs
A minha vontade é conseguir integrar um Framework ao CDI, e deixar o CDI disponivel par ao framework, para tal esse container é o primeiro passo... nele eu estou conseguindo resgatar coisas do EJB.... agora falta conseguir registrar de forma programatica...
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 14/04/2010 23:44:07
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
Resolvido o container... inclusive dentro dos EJB ... o @Inject funciona sim em todas as partes do container, dentro do CDI e dentro do EJB, foi só implementar Serializable que tudo passou a funcionar =x
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 02/09/2010 16:40:48
|
robsonsx
Entusiasta Java
Membro desde: 01/02/2005 11:44:54
Mensagens: 24
Localização: Salvador/BA
Offline
|
Lavieri,
Tudo bem? Este teu framework tá com código disponível?
Estou tb estudando as mesmas coisas que vc citou...
|
Robson Ximenes
------------------------------------------------
http://robsonximenes.com |
|
|
 |
|
|