想要获取ben,就得先获取ApplicationContext或者ApplicationContext的孩子WebApplicationContext,以下是我总结的3中获取的方式:
方式❶ :使用Junit4进行测试时(环境:Junit4/Spring3.0.5)
- import java.util.HashMap;
- import javax.annotation.Resource;
- import org.junit.Test;
- import org.springframework.test.context.ContextConfiguration;
- import org.springframework.test.context.junit4.AbstractJUnit4SpringContextTests;
- import com.winning.bi.dao.DiseaseDao;
- @ContextConfiguration(value="classpath:com/property/applicationContext.xml")
- public class GetSpringBenMethod1 extends AbstractJUnit4SpringContextTests{
- @Resource(name="diseaseDao")
- private DiseaseDao diseaseDao;
- @Test
- public void test(){
- System.out.println(diseaseDao.findDiseaseCount(new HashMap<String, Object>()));
- }
- }
日志:
- INFO 21-01 14:35:13,709 - Loading XML bean definitions from file [D:\Workspaces\MyEclipse 10\MMAP\WebRoot\WEB-INF\classes\com\property\applicationContext.xml]
- INFO 21-01 14:35:17,923 - Refreshing org.springframework.context.support.GenericApplicationContext@111a775: startup date [Mon Jan 21 14:35:17 CST 2013]; root of context hierarchy
- 0
方式❷ :使用ClassPathXmlApplicationContext
- package test;
- import java.util.HashMap;
- import org.junit.Test;
- import org.springframework.context.ApplicationContext;
- import org.springframework.context.support.ClassPathXmlApplicationContext;
- import com.winning.bi.dao.DiseaseDao;
- public class GetSpringBenMethod2{
- @Test
- public void test1(){
- ApplicationContext applicationContext=new ClassPathXmlApplicationContext("com/property/applicationContext.xml");
- //DiseaseDao diseaseDao=(DiseaseDao) applicationContext.getBean("diseaseDao"); //spring2.5写法
- DiseaseDao diseaseDao=applicationContext.getBean("diseaseDao",DiseaseDao.class); //spring3.0新特性
- System.out.println(diseaseDao.findDiseaseCount(new HashMap<String, Object>()));
- }
- }
方式❸:在Servlet中获取WebApplicationContext
- import javax.servlet.ServletException;
- import javax.servlet.http.HttpServlet;
- import org.springframework.web.context.WebApplicationContext;
- import org.springframework.web.context.support.WebApplicationContextUtils;
- public class InitServlet extends HttpServlet
- {
- @Override
- public void init() throws ServletException
- {
- WebApplicationContext webApplicationContext = WebApplicationContextUtils.getRequiredWebApplicationContext(getServletContext());
- webApplicationContext.getBean("");
- }
- }
转载于:https://blog.51cto.com/programmer/1123269