论坛首页 Java企业应用论坛

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

浏览 187369 次
该帖已经被评为精华帖
作者 正文
   发表时间:2012-01-03  
基本都同意  请问spring mvc伪静态化 是怎么进行静态化的?
0 请登录后投票
   发表时间:2012-01-03  
楼主  学习了  正在学习JAVA   收获不少啊  呵呵
0 请登录后投票
   发表时间:2012-01-03  
spring mvc的REST service风格是不错的,因此我们打算把urlrewrite给干掉了,可以参考
例如在controller处配置如下地址
@RequestMapping("/hotels/{hotelId}"),不用加上?key=value方式。
如果你把spring mvc的servlet设置为/xxx/**,那是不用加后缀即可访问,或者设置为*.htm,当然这个后缀可以随便改,不过要防止*.htm *.html等有些副作用
可以参考这个文章http://blog.springsource.org/2009/03/08/rest-in-spring-3-mvc/
0 请登录后投票
   发表时间:2012-01-03  
讨论来讨论去,还是讨论用哪个框架。。。
0 请登录后投票
   发表时间:2012-01-03   最后修改:2012-01-03
rainsilence 写道
讨论来讨论去,还是讨论用哪个框架。。。

刚开始我们也提到,学会怎么使用框架只是程序员的基本功,但是我们目标不应该满足于此。所以我也建议大家多看别人优秀的框架是如何实现的,请问有多少人熟悉JDK/spring等的代码,如果你熟悉了也不需要看别人写的书要怎么怎么配置了。而且那种用法比较优秀,比较容易实现也会心里有底。只会跟着设计编码,不会思考因果关系的人那是程序员。当然我本身也是个程序员。。

以前公司也有尝试自己写框架实现整个流程的,我不用spring mvc,我自己写一个表示层的实现也是可以的吧,无非就是servlet或者filterchain而已? 拿到请求就根据配置路由到不同的服务不同的方法去执行而已,反射,annotation,xml都可以实现,笨点hardcode也可以的。就我理解最后都是调用servlet 的dispatcher去干活的,貌似spring mvc就是这样。
spring也可以不要啊,所谓的IOC不就是把bean都自定义在一个hashmap里面,外加一些功能,每次取的时候给他需要的东西就好。所谓AOP也可以不用啊,就是在方法前后加上一些advice,加些逻辑,笨点,手写行吧。
hibernate和ibatis到最后都是sql而已,无非是想办法让你更容易写sql,hql最后不都是变成sql啊, 会写sql就会写代码了。

最后回到根本裸泳的时代, 那本质就是jsp/servlet/jdbc。 jsp/servlet又是对http协议的封装而已,jdbc就是对数据操作的封装而已,webservice又是xml+http的封装,再底层又是0101的二进制了....

虽然以上总结过于简单化,不过我认为这个就是J2EE的本质所在。学习Java的基础知识才皇道。最后我学艺不算很精,以上也许是个歪论。。。

但最后经过试验之后公司还是回归了spring框架,自己维护一套表示层或者业务层框架而又跟主业不太相关时,那个代价也太大了点,而且功能无法跟不断升级的开源框架比。
0 请登录后投票
   发表时间:2012-01-03   最后修改:2012-01-03
引用

2。单从开发成本上讲却还是可以,另外hibernate的好处是可以少写sql,而我们系统经常需要更改,hibernate也带来一些方便,例如增加某个字段,采用sql方式需要把sql和entity对象都改过来,采用hibernate是比较的方便,只要修改entity对象和xml或者annotation即可

hibernate 开发速度毋庸置疑,如果能做到“尽量不用他的那个配置做复杂的关联。 ” 应该会不错的。主要是上个项目里hibernate没用好,产生了性能问题,最后把大部分查询转到mybatis上了。另外hibernate 会自动持久化,有一次一个方法的事物忘记设置成只读的了,发版后才发现有个关联表的数据被删掉了,造成了比较严重的事故。从哪以后就感觉用hibernate不太放心。希望你们用的顺利


引用

4。 Tomcat会在启动时把class通过classloader加载到内存,即使你增加了class在classes目录下也没有办法认出来。尤其spring context是没有你新增的bean的,除非你reload这个应用(反复reload会有问题的),或者重启Tomcat,另外还有一个办法是通过OSGI动态加载,我们经常用的开发工具Eclipse就是基于OSGI开发的,但是那个会给我们带来极大的复杂度和架构上的更改。
除此之外,还有什么办法能做到不用重启tomcat,改动java class实时生效?


我是说做一套模板 应该是 html(或模板文件)、js、css、img 这些东西吧,如果不涉及class,就没有热加载的问题了。

引用

但最后经过试验之后公司还是回归了spring框架,自己维护一套表示层或者业务层框架而又跟主业不太相关时,那个代价也太大了点,而且功能无法跟不断升级的开源框架比。

0 请登录后投票
   发表时间:2012-01-03  
到底大型体现在哪?说点核心的东西吧。别光堆框架。
0 请登录后投票
   发表时间:2012-01-04  
mazzystar 写道
从维护成本考虑,感觉应该去掉dwr ,hibernate,直接用jquery和mybatis。
另外感觉静态化没什么必要,平白增加开发和维护的成本
还有
引用

1。模板技术缺少灵活性,目前Php的大型商城系统有很多的模板可以用,这个也不全都是官方自己开发的,这个是Java商城需要向php商城学习的地方。因为java是mvc方式建设的,有java,jsp, html等,java class需要重启服务器才能生效,而且很难像php一样,把所有东西写在一个目录拷贝到服务器上即可使用,目前我还是没有什么好的思路能达到这个效果的,考察了apache tiles/sitemesh/freemarker/velocity等,都没有想到办法。。。只能做到内置好模板让用户挑选。要达到大家都能做模板的程度,需要把代码和文档继续完善和开源。


这个跟java class 需要重启有什么关系呢?


因為php不需要重啟,當然用Java實現,只要把原本Servlet的功能,全部用JSP去控制,也可以實現的。更新只是更新jsp文件,也不會需要重啟。
0 请登录后投票
   发表时间:2012-01-04  
支持使用Spring和SpringMVC,另外严重建议把Hibernate拿掉,真不是个好东西,网站规模越大越难受。我倒是建议电子商务网站使用spring JdbcTemplate做数据库访问层
0 请登录后投票
   发表时间:2012-01-04  
onecan 写道
1. java本来就号称高性能和安全,我们的目标当然不会是针对量不多的情况来考虑了。需要把各种情况考虑清楚,因为java是分层开发的,可以通过测试找出对应薄弱环节进行增强。
2. redeploy web app或者spring context个人觉得只是适合开发阶段或者趁晚上没人reload次数不多的情况,这种情况还不如重启服务器。不适合生产环境,reload过程无法提供连续访问,如果我们很多客户需要增加模板,频繁reload,那客户体验也太差了,生产环境是基本上不能停止的。淘宝也可以自己改模板,你见他有中断过服务吗? 此法不可行也。


如果你用负载均衡的话,你就知道重启一个个应用服务器,是不会中断服务的。。。。。
0 请登录后投票
论坛首页 Java企业应用版

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