利用Spring Profile使系统支持多环境的切换 application.xml配置文件 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns:util="http://www.springframework.org/schema/util" xsi:schemalocation=""http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.2.xsd"> <!-- 开发环境配置文件 --> <beans profile="development"> <context:property-placeholder location="classpath:development.properties"> <import resource="classpath*:application-share.xml"> </import></context:property-placeholder></beans> <!-- 生产环境配置文件 --> <beans profile="production"> <context:property-placeholder location="classpath:production.properties"> <import resource="classpath*:application-share.xml"> </import></context:property-placeholder></beans> </beans> application-share.xml配置文件 <beans xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xmlns="http://www.springframework.org/schema/beans" xmlns:forest="http://api.zhizus.com/schema/forest" xsi:schemalocation=""http://www.springframework.org/schema/beans"> <context:component-scan base-package="cn.chutong"> <!-- 配置RestTemplate --> <!--Http client Factory--> <bean id="httpClientFactory" class="org.springframework.http.client.SimpleClientHttpRequestFactory"> <property name="connectTimeout" value="${HttpClient.connectTimeout}"> <property name="readTimeout" value="${HttpClient.readTimeout}"> </property></property></bean> <!--RestTemplate--> <bean id="restTemplate" class="org.springframework.web.client.RestTemplate"> <constructor-arg ref="httpClientFactory"> </constructor-arg></bean> </context:component-scan></beans> </textarea > spring-test例子 import java.util.ArrayList; import java.util.List; import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.BeansException; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.ApplicationContext; import org.springframework.context.ApplicationContextAware; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import com.alibaba.fastjson.JSON; import cn.chutong.vwdata.service.IDataTransformService; import cn.chutong.vwdata.service.IUserDataService; /** * @ClassName: AppTest * @Description: TODO * @author telinx * @date 2017年3月21日 上午11:03:26 */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations={"file:src/main/resources/application.xml"}) @ActiveProfiles("development") public class AppTest{ private static Logger logger = Logger.getLogger(AppTest.class); private String[] idCardNos = {}; @Autowired IUserDataService userDataService; @Test public void testUser() throws Exception{ String result = null; List<string> resultList = new ArrayList<>(); for(String idCardNo : idCardNos){ /*...*/ } logger.info(JSON.toJSONString(resultList)); } } </string> AppStart Main方法启动 import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import cn.chutong.vwdata.service.IUserDataService; public class App { private ApplicationContext applicationContext; public static void main(String[] args) throws Exception { /*GenericXmlApplicationContext ctx = new GenericXmlApplicationContext(); ctx.getEnvironment().setActiveProfiles("development"); ctx.load( new String[]{"application.xml"}); ctx.refresh(); */ ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext(); ctx.getEnvironment().setActiveProfiles("development"); ctx.setConfigLocations( new String[]{"application.xml"}); ctx.refresh(); IUserDataService userDataService = (IUserDataService) ctx.getBean("userDataService"); String result = userDataService.getUserData("*****************01"); System.out.println("vw_data------------>" + result); } }