一、背景引入
近期开发Spring应用的时候,基本的用户功能逻辑都通过SpringMVC框架铺垫好,通过暴露给前端的API进行功能的实现。但是在设计运营后台部分的时候,由于时间有限,采用了使用Shell脚本调用Java的方式,然后产生了一个让我头痛一阵子的问题:通过Shell调用Java功能,由于需要使用到mybatis操作数据库,mybatis与dao层强绑定,故被Shell脚本调用的Java也需要有一个Spring容器,且因为进程与tomcat进程不同,于是我写了一个下面的类:
public class SpringUtil {
public static Object getBean(String name) {
ClassPathXmlApplicationContext ac = new ClassPathXmlApplicationContext(
"applicationContext.xml");
Object obj = ac.getBean(name);
ac.close();
return obj;
}
}
通过这个类来初始化一个Spring容器,并从中获取一个Bean实例。但是,在调用mybatis的时候却一直提示DataSource is closed!