一、利用ClassPathXmlApplicationContext从classpath中读取XML文件

例1:
/* 加载应用上下文(单个文件) 
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("classpath:applicationContext.xml");
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml");
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("resource/applicationContext.xml");"src/resource/"
ApplicationContext applicationContext = new ClassPathXmlApplicationContext("file:D:/usermanage/src/applicationContext.xml");
*/

/* 加载应用上下文(多个文件) */
ApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","applicationContext_pro.xml"});

/* 获取bean
BeanFactory factory = applicationContext; 
IUserService userService = (IUserService) factory.getBean("userService"); 
*/
IUserService userService = (IUserService) applicationContext.getBean("userService");

testAddUser(userService);//业务

例2:
/* 加载应用上下文(单个文件)
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("applicationContext.xml"); 
*/

/* 加载应用上下文(多个文件) */
ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext(new String[] { "applicationContext.xml" });

// 获取bean
IUserService userService = (IUserService) applicationContext.getBean("userService");
		
testAddUser(userService);

// 关闭上下文
applicationContext.close();

二、利用ClassPathResource,从classpath中读取XML文件

例3:
/* 加载应用上下文(单个文件) */
Resource resource = new ClassPathResource("applicationContext.xml"); 

// 获取bean
BeanFactory factory=new XmlBeanFactory(resource); 
IUserService userService = (IUserService)factory.getBean("userService");
		
testAddUser(userService);

三、利用XmlWebApplicationContext读取( 专为Web工程定制)

例4:
/* 加载应用上下文 */
XmlWebApplicationContext xmlWebApplicationContext = new XmlWebApplicationContext();
xmlWebApplicationContext.setConfigLocations(new String[] {"applicationContext.xml"}); 
xmlWebApplicationContext.setServletContext(pageContext.getServletContext()); 
xmlWebApplicationContext.refresh();

// 获取bean
IUserService userService = (IUserService ) xmlWebApplicationContext.getBean("userService ");testAddUser(userService);

// 关闭上下文
xmlWebApplicationContext.close();


四、利用FileSystemResource读取

例5:
/* 加载应用上下文 */
Resource resource = new FileSystemResource("D:/tomcat/webapps/test/WEB-INF/classes/applicationContext.xml"); 
// 获取bean
BeanFactory factory = new XmlBeanFactory(resource);
IUserService userService = (IUserService) factory.getBean("userService");

testAddUser(userService);
注意:利用FileSystemResource读取,则配置文件必须放在project根目录下,或者写明绝对路径,否则就会抛出找不到文件的异常。

五、利用FileSystemXmlApplicationContext读取,可以指定XML定义文件的相对路径或者绝对路径来读取定义文件。

例6:
/* 1 */
String[] path={"WebContent/WEB-INF/applicationContext.xml","WebContent/WEB-INF/applicationContext_task.xml"};
ApplicationContext context = new FileSystemXmlApplicationContext(path);

/* 2
String path="WebContent/WEB-INF/applicationContext*.xml"; 
ApplicationContext context = new FileSystemXmlApplicationContext(path); */

/* 3
ApplicationContext ctx = new FileSystemXmlApplicationContext("classpath:地址"); */

版权声明:本文为chenlong220192原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
原文链接:https://blog.csdn.net/chenlong220192/article/details/46722215