注意:
(1)ApplicationContext ctx=new ClassPathXmlApplicationContext()是从当前路径寻找,xml文件应在当前目录下。不过如果指定绝对路径也可以!
(2)用FileSystemXmlApplicationContext,它是根据指定的路径来进行寻找,所以要把路径写完整ApplicationContext ctx=new FileSystemXmlApplicationContext("src/applicationContext.xml");
说在前面:
(1)applicationContext.xml编译后直接在classpath下;
(2)使用这一行代码的类,假设在路径com/tran/下;
context = new ClassPathXmlApplicationContext("/applicationContext.xml");
如果这样在IDE中不会报错,但是打包成jar就会报错!因为它会在com/tran/下找applicationContext.xml文件,显然找不到!
context = new ClassPathXmlApplicationContext(BeanFactory.class.getResource("/")+"/applicationContext.xml");
换成这种绝对路径,jar包中可以找到!
另外;
context = new FileSystemXmlApplicationContext(BeanFactory.class.getResource("/")+"/applicationContext.xml");
也不会报错!