Spring com servlet

Boa tarde, estou tentando configurar o spring para uma aplicação web e necessito que o spring faça a injeção das classes para mim. Coloquei alguns logs na inicialização do servidor e percebi que as dependencias são injetadas mas quando tento usa-las em um servlet o objeto esta nulo.
Criei um objeto ApplicationContext dentro do servlet e utilizei o .getBean() para recuperar a injeção e deu certo.
Minha duvida é se vou ter que fazer isto em todos os servlets ou existe alguma forma automatica para este processo?

A princípio, não deveria ser assim.
alguma coisa está errada

certo, aqui estão os codigos:

web.xml


 <servlet>
<servlet-name>dispatcher</servlet-name>
<servlet-class> org.springframework.web.servlet.DispatcherServlet </servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>dispatcher</servlet-name>
<url-pattern>*.*</url-pattern>
</servlet-mapping>

dispatcher-servlet.xml


<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>

	<bean id="usuarioDAO" class="mercado.dao.UsuarioDAO" />
	
	<bean id="usuarioService" class="mercado.service.UsuarioService" />
	
	<bean id="loginServlet" class="mercado.servlet.LoginServlet">
		<property name="usuarioService" ref="usuarioService" />
	</bean>

</beans>

LoginServlet.java

private IUsuarioService usuarioService;
	
	@Override
	protected void doGet(HttpServletRequest req, HttpServletResponse resp)throws ServletException, IOException {
		String login = req.getParameter("login");
		String senha = req.getParameter("senha");
		
		System.out.println("-------------------------- usuario service - "+usuarioService);
		
		Usuario usuario = usuarioService.getUsuarioPorLoginSenha(login, senha);
		
		if(usuario != null){
			req.getSession(true).setAttribute("usuario_logado", usuario);
			resp.sendRedirect(req.getContextPath()+"/app/home.jsp");
		}else{
			resp.sendRedirect(req.getContextPath());
		}
	}
	
	public void setUsuarioService(IUsuarioService usuarioService){
		System.out.println("-------------------------- set usuario service");
		this.usuarioService = usuarioService;
		System.out.println("-------------------------- spring - "+usuarioService);
		System.out.println("-------------------------- local - "+this.usuarioService);
	}
	public IUsuarioService getUsuarioService(){return this.usuarioService;}

Na inicialização do servidor a dependencia é injetada, porem no metodo doGet quando quero utilizar a classe usuarioService a variavel esta nula.

Boa tarde

Na minha aplicação para realizar injeção das dependências entre o Spring e o Servlet, fiz da seguinte maneira:

Inicializei o contexto através do Listener do Spring:

  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>classpath:/applicationContext.xml</param-value>
  </context-param>
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

Dentro das minhas Servlets adicionei o seguinte código no método init:

 public void init(){
		SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
	}      

Este método do Spring, injeta as dependências na instância do Servlet.

Falou.