ssh优缺点
面试归来
技术面试官叫我谈谈 ssh优缺点
平时用起来倒是挺顺手..但是从来没有系统的总结过..导致很多点会都没有说出来..
这次我认真总结了一下...
常说的好处 开源
常说的坏处 配置文件过大我就不提了
struts
优点:
收集,验证表单数据相比传统servlet简单
优雅的实现可配置的请求转发
缺点:
属侵入设计(actionform,action都无法复用)
与serlvetAPI严重耦合..无法摆脱容器
action与web层耦合.不方便测试
标准struts的action是非线程安全(很多简历上写着"精通Struts"的高手们都忽视的问题)
不熟悉:
struts标签库没怎么用过(常用jstl)
国际化只学过,没用过.停留在demo级别
validation.xml(配置文件写多了,有时候也想逃避)
支持表现层技术单一(一直作为struts的缺点来说...但是我也就会jsp而已)
Spring
优点:
IoC虽然不好形容,但是我从最开始接触spring时就觉得这是个很大的优点
aop(我自己写过的aop就只有日志...)
对象容器
管理对象的生命周期(集成struts摆脱线程问题)
测试也变得方便
多数代码没有侵入spring的API
对于hibernate有很好的支持
还有很多好处(权限,email支持,调度任务,权限,事务等等),我把我知道的对于ssh的尽量总结出来
缺点:
缺点我不好提出来..without ejb我没看过..甚至ejb我也不会..
我也就简单用用...不过我听说过这些缺点(如果有错请及时指正)
如果开发者设计不出合理的接口.导致一改就改多处.反而造成不便
不支持分布式部署。
不是一站式方案(开放的体系和封闭的体系这种话题我从来参与不进去..但是还是常看看的)
使用了反射来管理其容器中的bean,在程序中增大了内存和运行计算的时间,当然,这和spring带来的管理方便的好处来比,可以把此缺点忽略不计。
hibernate
优点:
ORM 使数据层更加对象化..摆脱所谓的阻抗不匹配
sql方言的存在使得开发不用过多考虑 数据库差异 的问题
非侵入式设计
缺点:
个人感觉熟练使用的话曲线太陡..(尤其对于多表间复杂查询)
不太适合做复杂的select语句查询
不熟悉:
Transaction(一般都直接交给spring了..接触不错..demo级别)
缓存机制(Session的缓存和SessionFactory的缓存(内置缓存和外置缓存))
聚集性操作数据(这种时候jdbc也白费吧...还是存储过程)
错觉:
hibernate对于瑕疵的处理不够
比如:有entity-name的映射 save 就抛错这是我很久以前就发现的问题..一直没有得到修正..难道这不是问题?
可能高手从我总结就可以看出我水平有多菜....
不过还是不要吝惜口水 喷我吧..
在javaeye被喷 只会使我进步 面试时候被喷 少的就是机会了
内容更改记录:
| javaeye_id | 修改原因(也就是回复部分内容) |
| xiaoyuqi00 | hibernate优点:非侵入式设计 这点我不怎么认同,如果你用hql的话很数据层就很麻烦了,虽然hibernate支持sql但是既然用hibernate,那首选肯定是hql或者criteria |
| geeksun |
使用了反射来管理其容器中的bean,在程序中增大了内存和运行计算的时间,当然,这和spring带来的管理方便的好处来比,可以把此缺点忽略不计 |
| blackstreet | 不太适合做复杂的select语句查询 |
ssh优缺点的更多相关文章
- SSH框架优缺点
SSH框架优缺点 开源是3个框架共有的优点 Struts2框架(MVC框架)的优点如下: 1) 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: 2) 丰富的标签库,大大提高了开发 ...
- SSH深度历险(十一) AOP原理及相关概念学习+xml配置实例(对比注解方式的优缺点)
接上一篇 SSH深度历险(十) AOP原理及相关概念学习+AspectJ注解方式配置spring AOP,本篇我们主要是来学习使用配置XML实现AOP 本文采用强制的CGLB代理方式 Security ...
- SSH框架阶段 ——SSH的优缺点,使用场景?
Hibernate优点: (1) 对象/关系数据库映射(ORM)它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想(2) 透明持久化(persistent)带有持久化状 ...
- SSH开源框架的优缺点
js+servlet+javabean的开发模式需要写很多的重复代码,比如固定的doGet()方法,而且它的控制跳转不灵活,往往一个问题处理需要两个.java文件,而且当采用MVC模式开发时有很大的耦 ...
- [JavaEE] SSH框架笔记_S.S.H框架各自的优缺点
Struts的原理和优点.Struts工作原理MVC即Model-View-Controller的缩写,是一种常用的设计模式.MVC 减弱了业务逻辑接口和数据接口之间的耦合,以及让视图层更富于变化.M ...
- 整理SSH框架的优缺点
Hibernate优点(1) 对象/关系数据库映射(ORM)它使用时只需要操纵对象,使开发更对象化,抛弃了数据库中心的思想,完全的面向对象思想(2) 透明持久化(persistent)带有持久化状态的 ...
- 开源的SSH框架优缺点分析
开源是3个框架共有的优点 Struts2框架(MVC框架)的优点如下: 1) 实现了MVC模式,层次结构清晰,使程序员只需关注业务逻辑的实现: 2) 丰富的标签库,大大提高了开发的效率: 3) Str ...
- SSH面试题收藏
Hibernate工作原理及为什么要用? 原理: 1. 读取并解析配置文件2. 读取并解析映射信息,创建SessionFactory3. 打开Sesssion4. 创建事务Transation5. 持 ...
- java面试题之ssh
1.写出你熟悉的开源框架以及各自的作用(项目中为什么使用SSH) 答:框架:hibernate,spring,struts1/struts2. Hibernate主要用于数据持久化:封装了JDBC操作 ...
随机推荐
- 【安卓中的缓存策略系列】安卓缓存之内存缓存LruCache
缓存策略在移动端设备上是非常重要的,尤其是在图片加载这个场景下,因为图片相对而言比较大会花费用户较多的流量,因此可用缓存方式来解决,即当程序第一次从网络上获取图片的时候,就将其缓存到存储设备上,这样在 ...
- String压缩 解压缩
数据传输时,有时需要将数据压缩和解压缩,本例使用GZIPOutputStream/GZIPInputStream实现. 1.使用ISO-8859-1作为中介编码,可以保证准确还原数据 2.字符编码确定 ...
- SDL2源代码分析2:窗口(SDL_Window)
===================================================== SDL源代码分析系列文章列表: SDL2源代码分析1:初始化(SDL_Init()) SDL ...
- CSS 控制table 滑动及调整列宽等问题总结
一. 通过css控制table y方向上滚动 html中没有滚动条,可以根据overflow属性的scroll来对table显示不完全的内容进行滚动. 只是y方向上滚动,很简单,只要设置div的hei ...
- 新手推荐:Hadoop安装教程_单机/伪分布式配置_Hadoop-2.7.1/Ubuntu14.04
下述教程本人在最新版的-jre openjdk-7-jdk OpenJDK 默认的安装位置为: /usr/lib/jvm/java-7-openjdk-amd64 (32位系统则是 /usr/lib/ ...
- 靠谱好用,ANDROID SQLITE 增删查改
布局文件main实现简单的功能: 1 <?xml version="1.0" encoding="utf-8"?> 2 <LinearLayo ...
- 【Django】优化小技巧之清除过期session
事情是这样的,大概也就几万注册用户的站点(使用django1.6), session 存储在关系型数据库,这次上线之后发现session表几十万数据了,过期session没有被自动删除 思考 官网 s ...
- android studio2.0出现的gradle问题,instant Run即时运行不了.
android studio 2.0出现的gradle问题: instant Run即时运行不了.经历了几乎9个preView版本的AS2.0,终于迎来了正式版,然而晴天我的霹雳,好不容易装好的2.0 ...
- 分布式进阶(十) linux命令行下载文件以及常用工具:wget、Prozilla、MyGet、Linuxdown、Curl、Axel
linux命令行下载文件以及常用工具:wget.Prozilla.MyGet.Linuxdown.Curl.Axel 本文介绍常用的几种命令行式的下载工具:wget.Prozilla.MyGet.Li ...
- 深度剖析linux内核万能--双向链表,Hash链表模版
我们都知道,链表是数据结构中用得最广泛的一种数据结构,对于数据结构,有顺序存储,数组就是一种.有链式存储,链表算一种.当然还有索引式的,散列式的,各种风格的说法,叫法层出不穷,但是万变不离其中,只要知 ...