解决方案 »
- aop实现记录日志的代码 谁有 发下邮箱[email protected]
- jfreechart经典问题
- spring validator很诡异的问题
- 请问我的id 是Byte 类型 hibernate <generator class="" />要用什么呢 我用的数据库是SQL Server2000
- 关于J2EE与J2SE环境的问题
- struts1 登陆时报错:javax.naming.NamingException: Cannot create resource instance
- 请问JAVA中如何判断一段字符串是不是日期格式?
- 关于Session持久化
- 给点建议吧:打算用java3D生成三维JPG图片,怎么做?
- 请推荐关于java Webservice的好书或电子文档,谢谢!!!
- org.hibernate.hql.ast.QuerySyntaxException: '' is not mapped [sql string]
- 关于字符串相加慢问题(非变量)
4.servelet担当控制,没有任何的配置,修改非常方便,只要修改servelet里if语句,想跳那跳那
===
部署后,客户要修改一个跳转。。修改xml不用重启,而servlet。。
如ls所说
再复杂下去,就会发现越来越多的问题。比如负责根据需求创建对应对象实例的工厂,在实现类很多的情况下,也会渐渐变的臃肿不堪。比如很多地方需要事务、日志、错误调试、性能调优等需求,如果采用硬编码的方式或是辅以设计模式,其耦合仍旧比较严重,要么破坏类的单一职责,要么就因为过多的上下继承关系而变的更加复杂和不灵活。到时候如果想要保持良好的结构和扩展性,更要花大量时间设计和编码。
这个影响甚至影响到我们在完全脱离框架,使用servlet/bean/jsp/jdbc时的设计思想。
1.楼主可以仔细看看自己在此帖中叙述的分层设计部分,其中的一些设计其实已经受到了ssh框架的影响,只是楼主没感觉到而已。这能说框架没有规范?他的流行已经让这些规范深入人心,而这些规范的合理也正是他流行的原因之一。
2.新框架的出现肯定是为了解决新的问题而来的,当然会带来新的规范,和适应新的需求。就像struts2和webwork代替struts1(前两者弥补了后者的很多缺陷),hibernate和iBatis互补一样(同为类似需求的解决方案,但各有优点,各有不同)。
3.ejb适用于大型分布式应用,肯定不适合中小型网站。
1、解耦
2、统一代码
3、复用,简化开发
4、将精力更关注于业务逻辑不使用fw肯定没问题,
但是从软件工程上讲,会加大很多开发成本。
如果有一个好的、使用熟练的fw,成本方面会压缩很多。现在的问题是软件开发行业工作内容划分不明晰,
很多应该独立出来的应该要框架人员来做的东西,
下放到了更应该关注业务逻辑的普通PG身上,
而很多普通PG都是“见树不见林”的,
不可能关注到负责模块之外的共通化,
所以导致了fw的混乱,也直接出现了"fw无用论"的问题。finally:
fw不是项目最重要的,
业务才是重头戏good luck
那是理想/完美,我也觉得不现实,
只要在实际项目上能尽量做到就阿弥陀佛了。也和使用者的使用经验/项目开发经验积累量有关。good luck
虽然我不是做Java的,但还是推荐大家看看我的框架PDF.NET ,思路都是一样的: http://www.pwmis.com/sqlmap
也可以下载框架测试例子:http://download.csdn.net/source/2052993
可是很多做框架的,都是开源,赚的也是对企业进行评估,外包开发等。若只用Spring是免费,做Spring的也没收到钱,但使用对Spring优化过的Tomcat等的时候就要收钱买了。
参考了iBatis.net?呵呵。很象呀。
欢迎大家下载使用阿!
你不觉得用if else比用配置文件更恶心么从头到尾根本看不明白LZ在说些什么
第三部:用servelet取代Struts。Struts给我们什么好处?也就是把跳转弄成了配置文件而已,但写配置文件你头不大么?而且Struts得传参时你郁闷么?还是URL直接传参来的靠谱吧。
这就是STRUTS的好处?
初衷是什么?
http://topic.csdn.net/u/20100222/22/8c1317ac-0d6c-4a9c-a8f0-bd0b7e4bc16f.html
这个贴的LZ他有他的想法 甚至他都把这个实践出了 他讨厌的东西 他多少能列举出理由 不过他跟LZ一样 不明白自己为什么用框架
1.没做过大项目,没见过过千的类和几百个页面带来的对设计的冲击和压力。
2.太在意框架,框架只是个额外的选择而已。
建议用ssh和servlet/javabean/jsp好好做几个上点规模的项目后,再来评论下,更有意义。呵呵。
struts那里我倒想学lz那样试试……
感觉现在很多项目都是“赶时髦”而上的hibernate。ibatis的半自动步枪...错了,半自动orm才是高效率开发和高效率执行的...一个选择。good luck
我对这个倒是比较感兴趣 ibatis 在跟struts2一起学不过ORM效率不高不一定是因为SQL语句的事情 如果我们非常非常熟悉他 并且任何操作都选择最恰当的方式去完成 我想效率不会太悲剧的 至少没传说中的悲剧
1.我Servlet只用了一两个,没有什么web.xml配置
2.什么叫“关系”数据库啊?关系数据库是有能力解决大半业务逻辑的,SQL很强大的,为什么老有人把数据关系拿到后台代码里呢?最简单的就是数据视图,你有1万张表我都能写个视图获得我想要的数据
3.除了增、删、改、查、分页你还常用那些啊?数据库,为什么叫“数据”库不叫其它什么库啊?就是它对数据的处理能力极强。数据库是很伟大的,悲剧在你不知道它的伟大。
4.权限问题说了放在fiter里面啊,最后写权限是一种技巧,你要是先写权限测试的时候光填密码就累死你了,放在过滤器里可以测试完了再加上FITER多好。还有,这也是过滤器存在的意义之一。
5.逻辑放在页面bean里,你有多复杂你写多点呗,说实话除了操作数据库中间件真不知道还在做什么,安全问题被过滤器屏蔽了啊。
也许我的理解狭隘了吧,不过我感觉中小型运用足够了。
b.说真的,要想通吃一类项目的话,设计出这样一个结构,花的时间可以顶上好几个项目了,而且需要大家赞同,自己一个人用那无所谓的了。
Good!
不过封装稍微复杂点基本使用factory模式+DAO模式的形式初步实现了MVC思想
之后就开始流行struts1 以及webwork 因为他们根据有MVC概念而另一方因为其大量使用factory模式以及“接口注入”方式让一部分人很反感,所以出现Spring为代表了IoC框架 而对于DAO模式有意见的某打拿开始研究ORM,也就是现在成为实施上标准的“hibernate”(还有轻量级的ibitis)而整体框架其实很早就出过一本相当著名的书POEAA LZ有兴趣可以研读一下
现在的b/s应用绝大部分无非都是record model 或 table module 或 trasaction script的变种知道 Rudy on Rail么? 前几年很流行的,其实就是“record model”的经典实现版
还有MS的开发核心 那个所有。net开发必用的“二位表” ,就是table module的核心概念
现在分裂出 Excalibur Phoenix Merlin 等子项目其实以前的log4j都深受该框架影响可以看看2004年的新闻
http://news.csdn.net/n/20041201/18569.html
http://avalon.apache.org/closed.html
话说回来有学哪些框架的时间SQL早学的光瓜烂熟了,这些框架弄来弄去还不就是想省些sql?理论上讲一个链接和一行sql就可以获得数据了,我个人感觉SQL操作数据库已经非常经典了。
我有点质疑:为了迎合java的OO思想就一定要把数据库类操作化么?就算出来一个完美的中间件把SQL彻底屏蔽掉了,最终的结果也只是把一行SQL语句变成了一个具有数据库列名的类,仅此而已,也就说换了一种写法,但是问题来了,要知道sql本身是有逻辑功能的现在没了,那么最终结局是:数据逻辑全部跑到语言层了,我可不认为JAVA的逻辑能力比SQL精简,你可能要写N多if…else来完成数据库逻辑。
还有一种完美结局:诞生一个OO的数据库,但是那要等到猴年马月?
怎么说法 在以前讨论中 我翻整得出结论是项目中尽量少引入不必要的东西,但不排斥引入比如你做个10个表的小应用就完全没有必要使用hibernate
如果你的页面根本就没有很多表单流转,那就不需要struts唯一感到伸缩性比较强的是spring因为就算你开发1个表的应用都可以用到spring+dbcp的用法
至于你的构架要我去弄 直接 就一个DAO模式可以了MVC用不用主要看你到底有多少页面,页面复杂度而已....还有MVC框架其实都是1通百通的...无非就是 servlet-dispacher action接口(DI式的) 页面流转配置 validate配置 这些东西 无论struts1 2 还是 webwork 还是其他用Java实现MVC的web架构都类似的...
只要记住这种模式就行了...要用的时候熟悉一下...然后就用...spring么也就不过是 type 2型注入(IoC概念) ... 在我看来只不过是用配置文件进行BEAN勾连,并提供应用初始化时load的东西而已...这种东西自己都可以写出来..只不过优化度没有他们高...hibernate么我觉得太复杂了..反正个人觉得,为了没有数据缓存的项目,去用这种东西。。只能一声叹息。。艾~~ 有其在那种表多但是都是curd操作的项目中,那耗费的系统资源可能比带来的益处厉害很多毕竟不是所有人都能真正理解hibernate内部各种神秘莫测的机制的弄到最后还要高级程序员去封装,制定规范,限制操作等等等。
比较同意spring+ibatis 是不错的选择 spring自己也有MVC框架 叫 spring mvc 哈哈 不知道现在还有没有。。不过如果你在条约思维一下,其实你完全可以用grail+java的来提高一般web应用的开发效率
所以基于技术去研究应用架构是不对的。。其实应该基于模式来讨论这样你的知识才能积累下来
技术日薪月异的太快除非一种技术已经成为真正意义上的垄断机制比如现在的unix/linux操作系统OO数据库是有的 只不过不完善而已
完全同意,我们在使用.net MVC 框架,借鉴的看java的框架,感觉道理上一致的,只是具体实施上有些许区别。在.net世界里,对应的HHibernate也是同样的问题,所以很多人开始使用Flent NHibernate,等一些封装好的工具。
2 有关楼主的“用if 想跳哪里跳哪里”,偶不敢苟同,那不有回到goto语言了吗。