ApplicationContext ac = new ClassPathXmlApplicationContext("applicationContext.xml");
DataSource ds = (DataSource) ac.getBean("ds");
System.out.println(ds);
ClassPathXmlApplicationContext中的参数默然去classPath路径下找.可以加classpath:applicationContext.xml.
如果多个xml文件,可以new String数组
ApplicationContext ac = new ClassPathXmlApplicationContext(new String[]{"applicationContext.xml","applicationContext_dao.xml"});
如果使用文件路径也可以
ApplicationContext ac = new ClassPathXmlApplicationContext("file:F:\\lee\\workspace\\struts2\\oa\\src\\applicationContext.xml");
注意:如果死绝对路径,file:是必须有的.
ClassPathXmlApplicationContext和FileSystemXmlApplicationContext的使用区别
FileSystemXmlApplicationContext的参数中如果使用绝对路径的话,可以加file前缀,也可以不加file前缀,这就是和classpahtXmlApplicaitonContext的区别之一
ApplicationContext ac = new FileSystemXmlApplicationContext("file:F:\\lee\\workspace\\struts2\\oa\\src\\applicationContext.xml");
ApplicationContext ac = new FileSystemXmlApplicationContext("F:\\lee\\workspace\\struts2\\oa\\src\\applicationContext.xml");
第二个也是可以的
如果要到class路径去寻找的话,就必须加上classpath
ApplicationContext ac = new FileSystemXmlApplicationContext("classpath:applicationContext.xml");
如果不绝对的路径,也不指定classpath,它默认在项目的路径下找
ApplicationContext ac = new FileSystemXmlApplicationContext("src/applicationContext.xml");
ApplicationContext ac = new FileSystemXmlApplicationContext("webcontent/applicationContext.xml");
而且路径不区分大小写
总结:ClassPathXmlApplicationContext默认是加载classpath路径下的配置文件,而FileSystemXmlApplicationContext默认是加载文件系统的配置文件