SSH项目整合的优缺点及Spring的ApplicationContext

SSH整合 一、SSH: Struts(表示层)+Spring(业务层)+Hibernate(持久层) Struts: Struts是一个表示层框架,主要作用是界面展示,接收请求,分发请求。在MVC框架中,Struts属于VC层次,负责界面表现,负责MVC关系的分发。(View:沿用JSP,HTTP,Form,Tag,Resourse ;Controller:ActionServlet,struts-config.xml,Action) Hibernate: Hibernate是一个持久层框架,它只负责与关系数据库的操作。 Spring: Spring是一个业务层框架,是一个整合的框架,能够很好地黏合表示层与持久层。 ① Web分层架构中业务层为什么都选择Spring? Service层需要处理业务逻辑和交叉业务逻辑,处理事务,日志,安全等,而这些与Spring的IoC,AOP等不谋而合。 ② Web分层架构中,对于各层技术的采用应该遵循一个怎样的标准?
1、选择发展成熟的技术: A、经过了项目实践证实可行性良好 B、文档完善 C、技术一直处于可持续发展更新
2、Web应用中对于技术的选择有赖于开发人员的技术掌握情况

二、Spring与Struts整合 前提: 必须在Web应用启动时,创建Spring的ApplicationContext实例
方式:
1、采用ContextLoaderListener来创建ApplicationContext: contextConfigLocation /WEB-INF/spring-config/applicationContext.xml org.springframework.web.context.ContextLoaderListener

2、采用ContextLoaderPlugIn来创建ApplicationContext 或者:通过listener装载spring应用上下文

方式一:通过Spring的ActionSupport类 ActionSupport类:
知道ApplicationContext的获得方式。
步骤:
1、Action直接继承ActionSupport
2、使用ApplicationContext ctx = getWebApplicationContext();取得Spring上下文
3、取得相应Bean 注意:有可能需要替换commons-attributes-compiler.jar包。
优点: 简单 缺点: 耦合高 违反IOC 无法使用多方法的Action
方式二:通过Spring的DelegatingActionProxy类 步骤:
1、Action中,使用IOC获得服务
2、配置struts-config.xml
3、在Spring配置文件中 注意,要用bean name命名。 /somepath:Action的path 优点: 不使用Spring api编写 Action 利用了IOC装配。 可以利用容器的scope="prototype"来保证每一个请求有一个单独的Action来处理, 避免struts中Action的线程安全问题。 缺点: struts配置文件中,所有path都映射到同一个代理类
方式三:通过Spring的DelegatingRequestProcessor类 步骤:
1、Action中,使用IOC获得服务
2、配置struts-config.xml
3、在Spring配置文件中

小结: Spring与Struts整合方式只有两种: (1)由Spring容器来管理Action(方式二,方式三) (2)Action处于容器之外(方式一) 注意: 中文问题: 设置过滤器,设置页面编码,数据库编码三、关于Spring与EJB 1、Spring与EJB3.0的对比 Spring与EJB3.0之间的关系是竞争关系。 ① Spring是一个开源的框架,而EJB3.0是一个标准(标准意味着将得到广泛的支持以及良好的兼容性),并且,采用EJB3.0,项目的后期维护得到了保证。 ② Spring是一个轻量级框架,EJB3.0是一个重量级框架(完整的容器,包含所有的服务)。 ③ Spring的IoC,AOP集成了大量的开源框架,可扩展性良好。EJB3.0的可扩展性则完全依赖于新的容器。 ④ Spring对事务支持不如EJB3.0成熟,Spring对集群的兼容也不够。 ⑤ Spring与EJB3.0都是一个企业级开发框架,都支持声明式事务。 2、Spring的优势与劣势 Spring的优势: ① 简化了企业级开发(对企业级服务进行了进一步的封装) ② 采用Spring框架的程序意味着良好的分层结构设计,并保证是面向接口编程的 ③ 用IoC,AOP容器,模块是可配置的,松耦合的,方便了后期维护 Spring的劣势: ① 配置复杂,不方便维护 ② 容器大量使用反射等机制装配对象,影响性能,对于高并发的大型应用无能为力。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值