Problema com VRaptor e ContextLoaderListener (Spring) [RESOLVIDO]

Bom dia

Estou criando uma aplicação onde utilizo VRaptor e Spring, todo processo de criação do contexto de dependências o próprio framework (Vraptor) se encarregava de fazer, onde ele encontrava o meu applicationContext.xml e inicializava as minhas dependências.

Agora tenho a necessidade de injetar componentes do Spring dentro de um Servlet, mas como meu contexto esta sendo criado pelo VRaptor recebo um NullPointer ao chamar o componente que foi injetado, para resolver este problema inicializei o contexto através do listener org.springframework.web.context.ContextLoaderListener que fica no meu web.xml, e para que o VRaptor use meu contexto, criei um Provider para encontrar meu Contexto de IoC que já esta criado, meu provider tem a seguinte estrutura:

@Override
	protected ConfigurableWebApplicationContext getParentApplicationContext(ServletContext context) 
	{
		return new DefaultSpringLocator().getApplicationContext(context);
	}

Só que habilitando o log do VRaptor, analisei que o contexto esta sendo criado 2 vezes, ou seja, o Spring cria o contexto e o VRaptor cria novamente, será que alguém conhece um solução para este problema?

Obrigado.

quando o contexto já existe, o VRaptor registra os seus componentes nele e dá um refresh. Isso faz com que os beans configurados antes sejam recarregados. Mas fica tranquilo que não tem dois contextos rodando ao mesmo tempo. No máximo um bean vai ser iniciado, destruido e iniciado novamente.

Bom dia

Valeu pela resposta Lucas, analisando o log gerado pelo VRaptor, ele realmente destrói as instâncias já criadas e depois cria novamente os beans.

Aproveitando o tópico sobre VRaptor e Spring, gostaria de saber se o VRaptor se comporta da mesma maneira com diferentes formas de injeção de dependências, por exemplo:

Injeção por construtor:

public Usuario(Result result, HttpServletRequest request){
     this.result = result;
}

Injeção por atributo (@Autowired):

@Autowired
private Result result;

@Autowired
private HttpServletRequest request;

public Usuario(){}

Gostaria de saber se o VRaptor irá se comportar normalmente com as dependências mesmo sendo uma outra forma de injetar.

Obrigado.

bom, por baixo dos panos é tudo Spring, então vc pode usar tudo que o spring suporta e vai funcionar do jeito esperado.