如何去取ContextConfiguration

我们平时写test去测试Spring一起的程序时,一般都要加载context,然后再取bean之类。

写法如下:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations = {"/services-test-config.xml"})
public class MySericeTest {

  @Autowired
  MyService service;
...

}



现在的问题是,我要获取一个bean,但是上面这种通过annotation申明xml配置文件的方式,和我们原来的那种(如下),那光光写在annotation,那我怎么通过context的reference去获取bean呢?


解决办法
其实申明一个context的成员变量,autowired一下就ok了
@Autowired
ApplicationContext context;



package com.test;

import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.core.io.ClassPathResource;
import org.springframework.core.io.FileSystemResource;

public class SpringMain {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		SpringBean bean = null;
		XmlBeanFactory factory = new XmlBeanFactory(new ClassPathResource("applicationContext.xml"));
		bean = (SpringBean)factory.getBean("test1");
		bean.sayHello();
		
		ApplicationContext act = new ClassPathXmlApplicationContext("applicationContext.xml");
		bean = (SpringBean)act.getBean("test1");
		bean.sayHello();
		
		factory = new XmlBeanFactory(new FileSystemResource("F:\\ccc\\workspace_zuhe\\Test\\src\\applicationContext.xml"));
		bean = (SpringBean)factory.getBean("test1");
		bean.sayHello();
	}

}





--------------------------------------

如果有多个xml的配置文件:
@ContextConfiguration(locations = {"classpath:com/xxx/aaa/applicationContext.xml",
                                    "classpath:com/xxx/aaa/common-config.xml",
                                    "classpath:com/xxx/aaa/applicationContext-dao.xml",})



猜你喜欢

转载自have-life.iteye.com/blog/1630145
今日推荐