论坛首页 Java企业应用论坛

大型Java多用户商城系统设计开发的心得和困难

浏览 188518 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-01-04  
wangchangbing 写道
velocity和freemarker的功能是jsp不能比的 建议你深入研究一个替换掉jsp


这个学习过,但不是很深入,就我知道就是把一个map作为参数传递给template替换掉里面的标签内容,外加一些循环标签,宏定义功能等。 能否列举一下freemarker velocity能做到的jsp又做不到的应用在商城中的效果?
0 请登录后投票
   发表时间:2012-01-04  
onecan 写道
..., 能否列举一下freemarker velocity能做到的jsp又做不到的应用在商城中的效果?


我想用freemarker, velocity的理由并不是 jsp 不能做到才去用的。实话跟你说,jsp能做到的freemark,velocity都能做到,反之也是一样。 目前的技术都很成熟了,没有做不到只有想不到。
0 请登录后投票
   发表时间:2012-01-04  
如果系统较小,用什么都无所谓。

如果系统较大,hibernate,尤其是hibernate的缓存,非常不合适~~ 我们有个系统经常内存溢出,hibernate的Entity不知道什么时候累积了,也不知道它到底都在干什么,很麻烦。

如果用IBatis,其实也就是出的早点。IBatis并不严谨,看源代码你就知道。

对于商城,如果做起来了,数据层估计以后就是在开发guzz的单个项目定制版。希望您了解下,或许思路上有所帮助。

hibernate偷偷干的事情太多,跟钱有关的系统还是少用比较好,IBatis都比它强。个人见解。

0 请登录后投票
   发表时间:2012-01-04  
tongyi2005 写道
onecan 写道
..., 能否列举一下freemarker velocity能做到的jsp又做不到的应用在商城中的效果?


我想用freemarker, velocity的理由并不是 jsp 不能做到才去用的。实话跟你说,jsp能做到的freemark,velocity都能做到,反之也是一样。 目前的技术都很成熟了,没有做不到只有想不到。

理论上FreeMarker和velocity能做的,jsp都能做到,但是jsp能做的,FreeMarker和Velocity就不一定能做了,比如你可以直接在jsp中定义内部类,可以在jsp中调用web service等等,可以说普通java类可以做得事情,jsp都可以做,但是FreeMarker和Velocity就不行了。

FreeMarker和Velocity的优势不是和jsp比谁的功能更强大,而是为了实现表示层中尽量不出现业务逻辑。

我的项目中很多地方用到FreeMarker,比如分页标签的渲染、各种自定义标签的渲染、内容模型自定义字段的渲染、发送email的模板、发送短信的模板等等,但是我的MVC视图层是直接用的jsp,因为,避免视图层出现过多业务逻辑,这一条可以通过人员的培训和约束来实现,但是有时候特殊情况下你不得不用一些jsp的特性,比如:我们经常需要仓促得为客户修改正在运行中的项目,系统不允许停,更不允许重启web server,这样的情况下,我就不得不把一些简单的功能直接在jsp中修改,这样的情景很多。
0 请登录后投票
   发表时间:2012-01-04  
myreligion 写道
如果系统较小,用什么都无所谓。

如果系统较大,hibernate,尤其是hibernate的缓存,非常不合适~~ 我们有个系统经常内存溢出,hibernate的Entity不知道什么时候累积了,也不知道它到底都在干什么,很麻烦。

如果用IBatis,其实也就是出的早点。IBatis并不严谨,看源代码你就知道。

对于商城,如果做起来了,数据层估计以后就是在开发guzz的单个项目定制版。希望您了解下,或许思路上有所帮助。

hibernate偷偷干的事情太多,跟钱有关的系统还是少用比较好,IBatis都比它强。个人见解。


严重同意啊。

一想起来Hibernate要缓存我的钱,还要按照它的规矩设计数据库,我就恨的呀

同意对iBatis的看法,涉及到分表分库,也要做大量改造扩展,还不如直接用Spring JdbcTemplate控制力强
0 请登录后投票
   发表时间:2012-01-04  
evanzzy 写道
myreligion 写道
如果系统较小,用什么都无所谓。

如果系统较大,hibernate,尤其是hibernate的缓存,非常不合适~~ 我们有个系统经常内存溢出,hibernate的Entity不知道什么时候累积了,也不知道它到底都在干什么,很麻烦。

如果用IBatis,其实也就是出的早点。IBatis并不严谨,看源代码你就知道。

对于商城,如果做起来了,数据层估计以后就是在开发guzz的单个项目定制版。希望您了解下,或许思路上有所帮助。

hibernate偷偷干的事情太多,跟钱有关的系统还是少用比较好,IBatis都比它强。个人见解。


严重同意啊。

一想起来Hibernate要缓存我的钱,还要按照它的规矩设计数据库,我就恨的呀

同意对iBatis的看法,涉及到分表分库,也要做大量改造扩展,还不如直接用Spring JdbcTemplate控制力强

Spring JDBC Template遇到分表、分库就好使了?好使在哪里?
很多人提倡Spring JDBC Template,对其崇拜程度就像崇拜Spring一样,Spring是不错,但是不代表Spring出品的所有东西都OK,Spring JDBC Template在我看来就是一个JDBC Template,如同它的名字,如果你可以忍受程序中夹杂一堆SQL语句,那么你认为它是好东西这无可厚非。

0 请登录后投票
   发表时间:2012-01-04  
讨论这些问题,基本没有ali系的人,失去意义。要先把业务做起来,架构是迭代出来的,不是一天拍脑袋定下来的、taobao最初是从cgi,php做的
0 请登录后投票
   发表时间:2012-01-04  
引用
1。模板技术缺少灵活性,目前Php的大型商城系统有很多的模板可以用,这个也不全都是官方自己开发的,这个是Java商城需要向php商城学习的地方。因为java是mvc方式建设的,有java,jsp, html等,java class需要重启服务器才能生效,而且很难像php一样,把所有东西写在一个目录拷贝到服务器上即可使用,目前我还是没有什么好的思路能达到这个效果的,考察了apache tiles/sitemesh/freemarker/velocity等,都没有想到办法。。。只能做到内置好模板让用户挑选。要达到大家都能做模板的程度,需要把代码和文档继续完善和开源。


模板技术, 其实可以研究一下dedecms, discuz supesite 他们的标签技术,

我前段时间搞过dedecms, 发现修改模版, 有许多标签可以使用, 就此来看, 用java应该也可以将灵活性做到很强, 一切商业逻辑全部封起来, 前台html,css随意调整 , 数据部分用标签来填就行了, 先不允许 复杂逻辑, (目前还没玩过java的模版)

用户自己的页面, 主元素, 或者说模型(不同的模型拥有不同的字段),

1. 目录(可以考虑支持多级,dedecms目前只支持一级)
2. 产品 (包含许多字段, 一一调用)
3. 自定义页面
4. 购物车
5. ....(随时扩充模型)




0 请登录后投票
   发表时间:2012-01-04  
melin 写道
讨论这些问题,基本没有ali系的人,失去意义。要先把业务做起来,架构是迭代出来的,不是一天拍脑袋定下来的、taobao最初是从cgi,php做的

paulwong 写道


0 请登录后投票
   发表时间:2012-01-04  
george_space 写道
tongyi2005 写道
onecan 写道
..., 能否列举一下freemarker velocity能做到的jsp又做不到的应用在商城中的效果?


我想用freemarker, velocity的理由并不是 jsp 不能做到才去用的。实话跟你说,jsp能做到的freemark,velocity都能做到,反之也是一样。 目前的技术都很成熟了,没有做不到只有想不到。

理论上FreeMarker和velocity能做的,jsp都能做到,但是jsp能做的,FreeMarker和Velocity就不一定能做了,比如你可以直接在jsp中定义内部类,可以在jsp中调用web service等等,可以说普通java类可以做得事情,jsp都可以做,但是FreeMarker和Velocity就不行了。

FreeMarker和Velocity的优势不是和jsp比谁的功能更强大,而是为了实现表示层中尽量不出现业务逻辑。

我的项目中很多地方用到FreeMarker,比如分页标签的渲染、各种自定义标签的渲染、内容模型自定义字段的渲染、发送email的模板、发送短信的模板等等,但是我的MVC视图层是直接用的jsp,因为,避免视图层出现过多业务逻辑,这一条可以通过人员的培训和约束来实现,但是有时候特殊情况下你不得不用一些jsp的特性,比如:我们经常需要仓促得为客户修改正在运行中的项目,系统不允许停,更不允许重启web server,这样的情况下,我就不得不把一些简单的功能直接在jsp中修改,这样的情景很多。


是的, 有时候我觉得逻辑也得分种类, 纯粹为了控制显示效果的,而且重用性很低的逻辑就直接搞到jsp里面算了, 省得都搞到类里面, 修改起来实在不方便, 不然有可能就会因为很小的一个东西重启服务, 感觉真是不直当的
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics