Obter Container a partir de uma Servlet

250 views
Skip to first unread message

Moisés P. Sena

unread,
May 4, 2011, 9:42:05 PM5/4/11
to caelum-vraptor
Boa noite pessoal!

Tenho uma classe que é instanciada a partir de uma Servlet de um
framework qualquer, como posso obter um objeto Container nesta minha
Classe (por exemplo, um acesso stático) ?

Abraços

Moisés P. Sena

unread,
May 4, 2011, 9:43:44 PM5/4/11
to caelum-vraptor
Esqueci de mais um detalhe:

Eu consigo pegar o objeto do Container através do objeto
HttpServletRequest?

Lucas Cavalcanti

unread,
May 4, 2011, 9:58:12 PM5/4/11
to caelum-...@googlegroups.com
não normalmente... e vc não deveria usar isso para o mal, mas vc consegue fazer o seguinte:

crie a classe:

@Component
@ApplicationScope
public class Gambiarra {
    public Gambiarra(Container container, ServletContext context) {
        context.setAttribute("container", container);
    }
    @PostConstruct
    public void init() {
       System.out.println("Gambiarra was made. Só pra invocar o construtor da classe");
    }
}

tente isolar isso ao máximo, por exemplo só pegando as classes que vc precisa, e não o container inteiro

[]'s
2011/5/4 Moisés P. Sena <moise...@gmail.com>
--
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.


Moisés P. Sena

unread,
May 4, 2011, 10:17:16 PM5/4/11
to caelum-vraptor
On 4 maio, 22:58, Lucas Cavalcanti <lucasmrtu...@gmail.com> wrote:
>
> tente isolar isso ao máximo, por exemplo só pegando as classes que vc
> precisa, e não o container inteiro

O que acontece é que tenho uns Daos anotados com @Component, e eu
queria, a partir de um metodo da minha classe SOLITARIA obter estes
DAOs. Tendo acesso ao container, acredito ter acesso ã demais classes
que eu queira ter como Dependencia.

Boa Noite!
Abraços

Moisés P. Sena

unread,
May 5, 2011, 4:15:27 PM5/5/11
to caelum-...@googlegroups.com
Em 4 de maio de 2011 22:58, Lucas Cavalcanti <lucasm...@gmail.com> escreveu:
não normalmente... e vc não deveria usar isso para o mal, mas vc consegue fazer o seguinte:

crie a classe:

@Component
@ApplicationScope
public class Gambiarra {
    public Gambiarra(Container container, ServletContext context) {
        context.setAttribute("container", container);
    }
    @PostConstruct
    public void init() {
       System.out.println("Gambiarra was made. Só pra invocar o construtor da classe");
    }
}

tente isolar isso ao máximo, por exemplo só pegando as classes que vc precisa, e não o container inteiro


Funcionou perfeitamente!

Abraços

--
Moisés P. Sena
(Analista e desenvolvedor de sistemas WEB e mobile)
http://www.moisespsena.com
http://linux.moisespsena.com
Reply all
Reply to author
Forward
0 new messages