日期:2014-05-20  浏览次数:20612 次

Spring 加载
Spring加载有两种方式,一是在web.xml中配置listener,一是在struts-config.xml中配置<plug-in>,提问如下:

1.应用中ApplicationContext是否是单例的?若是单例的,怎么配置让它变成非单例的呢?

2.在Web应用中同时配置了这两种加载方式,系统并没有报错,那么应用中到底是使用了哪一个呢?
  
3.使用listener进行配置可以通过request.getSession.getSeveletContext()得到上下文,并可以轻松获得 applicationContext.xml中配置的bean,而通过<plug-in>并不能获得上下文。那么,在实际的应用中大家是否都是使用
<listener>进行加载呢?

4.有不有什么方法可以查看一个实例创建的时间?System.out.println(object);只能看到毫秒级,有不有能看到纳秒级的?

================
每题15分,欢迎抢答^_^

------解决方案--------------------
1:ApplicationContext肯定是单例,至于怎么配置让它变成非单例,这就不清楚了。想反问lz一下为什么要配置成非单例呢,意义何在?
2:个人觉得应该是使用web.xml中的配置吧,因为web服务器是先与struts-config.xml加载web.xml的。
3:很少有人用plugin配置吧。不过我现在用struts2,没有plugin配置。
4:lz有方法了,贴出来,学习一下。
个人愚见 还望指教
------解决方案--------------------
2.在Web应用中同时配置了这两种加载方式,系统并没有报错,那么应用中到底是使用了哪一个呢? 

这个我认为是 使用 struts-config.xml 中配置的,web服务器先加载 web.xml中的,而这些配置是放在 map中的,所以后一个加载的有效。
------解决方案--------------------
回答你第一个问题,其它有个答了,可以设备BEAN的scope属性。
------解决方案--------------------
你看那么精确的时间有啥用啊?
------解决方案--------------------
习惯,推荐在web.xml中配置Spring的环境
两种配置方式,无非就是服务器加载顺序不一样