2007-09-16
介绍个暑假实习的项目,请高手闷批批!--大家不要客气
暑假实习做个J2ee项目,请大家批!
整体架构:Hibernate+Spring+Struts1.1+Ajax(只用了一点点Ajax)
Web服务器: Tomcat 5.0.28
数据库服务器:Oracle 9i
总的来说系统分成三层:持久层,业务层和Web层。
整个项目纵向开发,每个人负责单一模块的所有层的代码,各个模块之间的调用,自行协调。
首先从持久层来说,分成两个包,bean和dao:bean包内包含自动生成的hbm文件和类文件,单张表对应单个类,没有级联映射;dao包内包含的对单表(有的也包含业务逻辑相关的表)的CRUD操作(通过HibernateTemplate完成)。
业务层:service大部分只是简单调用了dao的类。
Web层:分成两个包form和action,form包内包含了ActionForm类文件;action包内包含的DispatchAction类文件,每个DispatchAction完成对一个数据表的crud操作。
各层之间的数据传递:数据库查询得到ArrayList,其中包含了bean类的对象,由持久层一直到Web层。由页面获的数据则通过ActionForm将数据复制到bean类中(手工完成的,繁!!!),最终写入数据库。
各层之间得耦合:通过Spring IOC “解耦”。
异常处理:没有自定义异常类型,持据层捕获异常,throw新得RuntimeException,一直抛到Web层。
事务配置:通过HibernateTransactionManager配置在业务层。通过方法名匹配,将addXXX,updateXXX,delXXX配置成原子操作。
还有一点,struts通过plugin加载spring,所有的action请求都被发送到org.springframework.web.struts.DelegatingActionProxy,通过method参数执行对应的方法。
整个过程没有考虑性能,所以对HQL和Hibernate没有深入学习(可惜!)。
俺是新手一个,哪里没有说明白的,请大家随便问。
系统不合理的地方,请大家任意批!!!
整体架构:Hibernate+Spring+Struts1.1+Ajax(只用了一点点Ajax)
Web服务器: Tomcat 5.0.28
数据库服务器:Oracle 9i
总的来说系统分成三层:持久层,业务层和Web层。
整个项目纵向开发,每个人负责单一模块的所有层的代码,各个模块之间的调用,自行协调。
首先从持久层来说,分成两个包,bean和dao:bean包内包含自动生成的hbm文件和类文件,单张表对应单个类,没有级联映射;dao包内包含的对单表(有的也包含业务逻辑相关的表)的CRUD操作(通过HibernateTemplate完成)。
业务层:service大部分只是简单调用了dao的类。
Web层:分成两个包form和action,form包内包含了ActionForm类文件;action包内包含的DispatchAction类文件,每个DispatchAction完成对一个数据表的crud操作。
各层之间的数据传递:数据库查询得到ArrayList,其中包含了bean类的对象,由持久层一直到Web层。由页面获的数据则通过ActionForm将数据复制到bean类中(手工完成的,繁!!!),最终写入数据库。
各层之间得耦合:通过Spring IOC “解耦”。
异常处理:没有自定义异常类型,持据层捕获异常,throw新得RuntimeException,一直抛到Web层。
事务配置:通过HibernateTransactionManager配置在业务层。通过方法名匹配,将addXXX,updateXXX,delXXX配置成原子操作。
还有一点,struts通过plugin加载spring,所有的action请求都被发送到org.springframework.web.struts.DelegatingActionProxy,通过method参数执行对应的方法。
整个过程没有考虑性能,所以对HQL和Hibernate没有深入学习(可惜!)。
俺是新手一个,哪里没有说明白的,请大家随便问。
系统不合理的地方,请大家任意批!!!
评论
gordon@java
2007-09-18
beanutils里面用的也是reflection
每层都定义好自己的exception咯,尽量不要在过多的地方catch unchecked的exception,如果一个地方不catch但是忘记了再throw的话,程序就会怎么死的都不知道了
一个简单的例子是SqlException
每层都定义好自己的exception咯,尽量不要在过多的地方catch unchecked的exception,如果一个地方不catch但是忘记了再throw的话,程序就会怎么死的都不知道了
一个简单的例子是SqlException
WorldHello
2007-09-17
gordon@java 写道
2点建议
1.
由页面获的数据则通过ActionForm将数据复制到bean类中(手工完成的,繁!!!)
可以使用apache common 的beanutils
1.
由页面获的数据则通过ActionForm将数据复制到bean类中(手工完成的,繁!!!)
可以使用apache common 的beanutils
曾经尝试过用Reflection,但是被公司的人给否了;
beanutils以前没用过,学习先!
gordon@java 写道
2点建议
2.
异常处理:没有自定义异常类型,持据层捕获异常,throw新得RuntimeException,一直抛到Web层。
catch-rethrow的开销比较大,最好只catch自己关心的
2.
异常处理:没有自定义异常类型,持据层捕获异常,throw新得RuntimeException,一直抛到Web层。
catch-rethrow的开销比较大,最好只catch自己关心的
在持久层捕获的异常以unchecked exception的形式抛到业务层,然后在业务层又重抛到Web层,
而且日志系统也重复记录了异常信息。
不知道有好的解决办法没有?
WorldHello
2007-09-17
melin 写道
不亲身去体会或看到代码,就是怎样的烂了。其实等你经历了两个公司后,你就不会报太多幻想,大部分的公司系统从设计,编码和规范都很烂了,特别是规范吧,到做时间长了,就没办法去管了。除非你进ibm之类的公司,应该就好多了!
hoho,在IBM一面被刷了!!!惨啊!
gordon@java
2007-09-17
2点建议
1.
由页面获的数据则通过ActionForm将数据复制到bean类中(手工完成的,繁!!!)
可以使用apache common 的beanutils
2.
异常处理:没有自定义异常类型,持据层捕获异常,throw新得RuntimeException,一直抛到Web层。
catch-rethrow的开销比较大,最好只catch自己关心的
1.
由页面获的数据则通过ActionForm将数据复制到bean类中(手工完成的,繁!!!)
可以使用apache common 的beanutils
2.
异常处理:没有自定义异常类型,持据层捕获异常,throw新得RuntimeException,一直抛到Web层。
catch-rethrow的开销比较大,最好只catch自己关心的
melin
2007-09-16
不亲身去体会或看到代码,就是怎样的烂了。其实等你经历了两个公司后,你就不会报太多幻想,大部分的公司系统从设计,编码和规范都很烂了,特别是规范吧,到做时间长了,就没办法去管了。除非你进ibm之类的公司,应该就好多了!
发表评论
提醒: 该博客已发表在公共论坛,博客所有留言会成为论坛回贴,留言请注意遵守论坛发贴规则
- 浏览: 4592 次
- 性别:

- 来自: 北京

- 详细资料
搜索本博客
最近加入圈子
最新评论
-
有人了解路透社中国研发中 ...
牛人到处有,AJVAEYE里特别多!
-- by aids198311 -
有人了解路透社中国研发中 ...
jjcang 写道面了我3次,还是把他据了。 环境不错,钱也可以。 我也是面了 ...
-- by ladofwind -
北京菲娜丽思信息技术有限 ...
荷兰的公司, 在上地嘉华大厦, 公司气氛不错。 我去过一次, 项目经理是老外, ...
-- by dongavron -
应届生诚心请教->去中科 ...
8懂啥 哈哈!!没学过你说的这些东西
-- by qq40176341 -
应届生诚心请教->去中科 ...
没人理我。。。。。。
-- by WorldHello






评论排行榜