java ssh优势_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语句查询

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值