Injetar componente VRaptor num bean instanciado pelo Spring

42 views
Skip to first unread message

lorenoo...@gmail.com

unread,
Nov 18, 2010, 7:57:17 AM11/18/10
to caelum-...@googlegroups.com
Pessoal, bom dia.

Vi algumas discussões no historico do grupo mas não saquei bem a idéia da solução.

Estou configurando o spring security em meu projeto. No meio dessa configuração, preciso criar um UserDetailService personalizado, para buscar no meu banco de dados os dados do usuário que tenta se logar no sistema. Essa classe personalizada eh configurada no applicationContext.xml e instanciada pelo spring. Para que ela funcione preciso de acesso ao DAO de usuarios, que eh um componente do VRaptor. Como consigo misturar essas coisas? Ou seja, injetar no bean criado pelo spring um componente gerenciado pelo vraptor?

Loreno

Lucas Cavalcanti

unread,
Nov 18, 2010, 8:51:03 AM11/18/10
to caelum-...@googlegroups.com
Olá,
infelizmente isso só vai funcionar se o UsuarioDao estiver configurado no Spring (ou no appContext ou via anotação)...

solução intermediária talvez seja receber uma Session (ou EntityManager) no construtor, e instanciar o UsuarioDao
na mão...

estamos tentando mexer no VRaptor pra que o Spring e o VRaptor estejam no mesmo nível, daí conseguimos usar
componentes de um no outro sem problemas
--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To post to this group, send email to caelum-...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vrapto...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor?hl=en.

Natanael Pantoja

unread,
Nov 18, 2010, 9:04:06 AM11/18/10
to caelum-...@googlegroups.com
Então eu não quebrei minha cabeça com isso, eu simplesmente injetei uma sessionFactory no meu CustomAuthenticationProvider  e pronto, fiz a validação do usuário por lá.


Qual os problemas que vocês está tendo?

Abração

--
You received this message because you are subscribed to the Google Groups "caelum-vraptor" group.
To post to this group, send email to caelum-...@googlegroups.com.
To unsubscribe from this group, send email to caelum-vrapto...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/caelum-vraptor?hl=en.



--
 Natanael Pantoja
Twitter: @natanaelpantoja
Blog: www.natanaelpantoja.com/tech/


Douglas Campos (qmx)

unread,
Nov 18, 2010, 9:06:33 AM11/18/10
to caelum-...@googlegroups.com
O problema de fazer isso é que você perde o controle do ciclo de vida
da session que o vraptor faz pra você, o que não é tão desejável assim
dependendo da situação...

2010/11/18 Natanael Pantoja <natanae...@gmail.com>:

lorenoo...@gmail.com

unread,
Nov 18, 2010, 12:44:21 PM11/18/10
to caelum-...@googlegroups.com
Pois eh, acabei criando a sessao na mao e esta funcionando.

Engracado que quando instanciei os componentes do vraptor na mao para criar a session, nao funcionou. Mas se eu abro o codigo fonte das classes SessionCreator e SessionFactoryCreator e colo seu conteudo diretamente no meu código, funciona...

Lucas Cavalcanti

unread,
Nov 18, 2010, 12:51:38 PM11/18/10
to caelum-...@googlegroups.com
se a criação de session está do lado do VRaptor, não tem também como usar no lado do Spring..

uma solução melhor do que copiar e colar código seria fazer:

SF sf = new SessionFactoryCreator().getInstance();
Session session = new SessionCreator(sf).getInstance();

mas criar sessoinFactories toda hora também é ruim...
Reply all
Reply to author
Forward
0 new messages