求助疑惑解答? spring,struts

来源:互联网 发布:凯迪网络下载 编辑:程序博客网 时间:2024/05/12 15:51

                                           现有疑惑不解,请求高手们给与指教!

问题是这样的:

我利用struts,hibernate,spring搭建了一个应用程序,这个应用程序分几个模块,于是将请求的处理就分成了多个struts-config.xml配置文件,同样对于各模块所需要用到的bean都另写了不同的applicationContext.xml配置文件管理,然后我将事务管理和数据库连接的配置写了一个公用的配置文件applicationContext_transaction.xml,让其他applicationContext.xml通过import去引用。

以下截了几个图:

web.xml关于struts的配置

 

WEB-INF/下的struts各配置文件

 

单个Struts-config.xml配置文件里都有的内容:

所用到得spring配置文件:

 

如果我这样配置的话,tomcat容器启动的时候通过web.xml去初始化那些个struts-config.xml,每加载一个

struts-config.xml,然后根据我的配置中由value指定的值classpath:/spring/*.xml,那么它会由Spring的

WebApplicationContext去创建一个容器然后创建spring/*.xml下的所有bean实例,显然在Web-INF/下有6个struts-config.xml

配置,那么tomcat启动完后会创建6个springIOC容器,而且每个容器里面都装载了所有的bean实例,这不尽影响了程序的发布时间,

也造成了不必要的内存资源浪费。我后来将每个value值的指定它对应的spring.xml的配置文件,

如改变struts-config-user.xml下的配置内容:value="classpath:/spring/applicationContext-user.xml",其他也对应改了值,

这样了就使得每次加载一个struts-config.xml配置文件只需要加载与该配置文件有关的bean实例就行了,但它还是又单独创建了一个IOC

 容器,等于说还是有6个IOC容器被创建,而且每一个容器里面都有事务管理bean和Sessionfactory bean等公用的bean,那么我希望

如果只产生一个IOC容器,而里面又都只有一份公用bean,且不能将所有的applicationContext.xml和struts-config.xml各自整合为一个

配置文件,因为这样不利于分工协同开发,以及后期维护。应该怎么实现了???

 

注:之所以认为产生了6个IOC容器,是根据我在组件类给其无参构造函数输出一句话,在tomcat启动完后,打印了6次。

原创粉丝点击