注册 登录
编程论坛 J2EE论坛

单例模式的问题

西鄙人 发布于 2013-01-22 14:04, 776 次点击
请问,像下面代码在spring项目中,context变量会频繁初始化吗,applicationcontext.xml文件会频繁加载吗,因而过多占用内存吗?
private static final String xml = "applicationcontext.xml";
private static ApplicationContext context;
private static Object getBeanService(String serviceName) {
    Object bean = null;
    try {
        if (context == null) {
            context = new ClassPathXmlApplicationContext(xml);
        //context = SpringApplicationContextUtil.getApplicationContext();
        }
    bean = context.getBean(serviceName);
    } catch (Exception e) {
       e.printStackTrace();
    }
    return bean;
}
6 回复
#2
芥末小弟2013-01-23 14:49
这个不懂、、
#3
hhwz2013-01-23 20:05
会的 会频繁初始化
private static final String xml = "applicationcontext.xml";

private static Object getBeanService(String serviceName,ApplicationContext context) {
    Object bean = null;
    try {
        if (context == null) {
            context = new ClassPathXmlApplicationContext(xml);
        //context = SpringApplicationContextUtil.getApplicationContext();
        }
    bean = context.getBean(serviceName);
    } catch (Exception e) {
       e.printStackTrace();
    }
    return bean;
}
这样就OK
内存方面的话 不用考虑 JAVA有自动回收机制 如果出现了才考虑手动清理
#4
JeffLi2013-01-24 09:13
三楼好思路,
不过spring配置文件不是已经交给服务器容器处理了么?
我想知道,在实际开发中,这种方法会用到什么地方,测试?
求解 谢谢
#5
西鄙人2013-01-24 10:15
谢谢大家。
回答4楼,这个方法用在工具类中,当业务层需要初始化某个bean时,会调用这个工具类。
#6
hhwz2013-01-24 14:11
回复 4楼 JeffLi
这是通过工具类来获取serviceBean
在SPRING 注入不到的情况下使用 比如 tag标签
spring 无法注入service 就通过这个来获取
#7
JeffLi2013-01-25 17:12
哦 有点明白了 谢谢 五楼 六楼 解惑
1