struts2和spring集成后bean是单例还是多例,是怎么管理的
答案:2 悬赏:20 手机版
解决时间 2021-03-02 15:05
- 提问者网友:遁入空寂
- 2021-03-01 21:49
struts2和spring集成后bean是单例还是多例,是怎么管理的
最佳答案
- 五星知识达人网友:掌灯师
- 2021-03-01 22:17
spring默认是单例模式,但是Struts的Action一般来说一个线程请求要有一个Action这样才能保证数据安全,所以Struts的Action要配置scope="prototype" 不使用单例模式。
全部回答
- 1楼网友:渊鱼
- 2021-03-01 22:44
对于大多数的应用,从表现层的action,到持久层的datasource,都被spring 作为
bean 管理。如果这些bean 被配置在同一个文件中,阅读及维护该配置文件将是一件非
常有挑战的事情。
因此, spring 建议:将一个大的配置文件分解成多个小的配置文件,使每个配置文
件仅仅管理功能近似于bean; 这样不仅可以分散配置文件,降低修改配置文件的风险,
而且更符合"分而治之"的软件工程原理。
多个配置文件最终需要汇总, applicationcontext提供如下方式来汇总多个配置文件:
.使用app1icationcontext 加载多个配置文件。
? web 应用启动时加载多个配置文件。
? xml 配置文件中导入其他配置。
1 applicationcontext 加载多个配置文件
applicatoncontext 的常用实现类有如下两个:
? classpathxm1 applicationcontext 。
? filesystemxm1applicationcontext 。
这两个类都可以用来加载多个配置文件,它们的构造器都可以接收一个数组,并在
该数组中存放多个配置文件。classpathxm1applicationcontext 可采用如下代码加载多个
配置文件:
/i创建配置文件数组
/i假设有3 个配置文件: a.xml , b.xml , c.xml
str工ng[) configlocations = {"a.xml" , "b.xml" , "c.xml"}
以配置文件数组为参数,创建applicationcontext
applicationcontext ctx = new classpathxmlapplicationcontext(configlocations);
与采用filesystemxm1applicationcontext创建applicationcontext的方式相似,区别
仅在于二者搜索配置文件的路径不同:classpathxm1applicationcontext通过classpath
路径搜索配置文件:而filesystemxm1applicationcontext则在当前路径搜索配置文件。
2 web 应用启动时加载多个配置文件
参看5.12.3 节所述,通过contextloaderlistener 也可加载多个配置文件,可利用
337
轻量级j2ee 企业应用实战一一-struts+spring+hibernate 整合开发
元素来指定多个配置文件位置,其配置如下:
3 xml 配置文件中导人其他配置文件
配置文件本身和其子元素import. 可用于导入其他配置文件。具体的配置示例如下:
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯