Estou utilizando o Spring para fazer injeçao de dependencias, como tinha estudado em tutoriais, a gente utiliza um método main aonde pega o contexto e seta o id do bean com o método getBean para acessar a classe no applicationContext.xml … blz, como no meu trabalho que estou fazendo não teremos que criar o método main, então acabei criando os listeners no arquivo web.xml e carreguei o arquivo applicationContext.xml também dentro do web.xml… agora é que vem a pergunta, como faço para criar o contexto ou esse contexto já é criado, como eu acesso o id do bean que antés era pelo método getBean()?!
Cara, você não usa/gosta de annotations? Você está fazendo tudo pelo arquivo xml, correto?
Eu não peguei essa fase do Spring, já peguei com as annotations.
Olha, é assim que costumo fazer:
web.xml - sobe o contexto do Spring e chama o arquivo mvc-dispatcher-servlet.xml[code]Spring MVC Application
<!-- Spring MVC -->
<servlet>
<servlet-name>mvc-dispatcher</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>mvc-dispatcher</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
/WEB-INF/mvc-dispatcher-servlet.xml,
/WEB-INF/spring-security.xml
</param-value>
</context-param>[/code] mvc-dispatcher-servlet.xml [code] <!-- Ativa várias anottations serem detectadas em classes -->
<context:annotation-config />
<!-- Configura o projeto para as anottations de mvc do Spring
Note that, with Spring 3.0, this tag works in Servlet MVC only! -->
<mvc:annotation-driven />
<!-- Procura no classpath componentes anotados para serem registrados como Spring Beans
For example @Controller and @Service. Make sure to set the correct base-package -->
<context:component-scan base-package="br.com.meuprojeto" />
<!-- diretorio estatico do javascript -->
<mvc:default-servlet-handler />[/code] Pronto, acho que com isso já dá pra ter uma ideia. Agora, pode-se usar: @Controller - para os controllers @Service - camada de serviço (a que chama o DAO) @Repository - Dao @Component - Para injeção básica, é só anotar e chamar ela na outra classe
E para chamar a classe anotada:
[code] @Autowired
private UserDAO userDAO;
@Autowired
private MyTools myTools;
@Autowired
private MailService mailService;
@Override
public List<User> findAllUsers() {
return userDAO.findAllUsers();
}[/code] Vê se isso te ajuda
freak, eu acho que o seu WebXmlApplicationContext é o meu mvc-dispatcher-servlet.xml
Eu poderia colocar qualquer nome nele, pra falar a verdade o padrão do nome desse arquivo é applicationContext ou springAlgumaCoisa, o importante é referenciar ele no web.xml
Qualquer coisa me manda mensagem privada que te passo um projetinho bala aqui que sobe em dois minutos no Eclipse (Maven required)