前端时间参加了一个电子商务的项目,对于其中的系统架构景仰不已。这里分web层、业务层和持久层说,与大家分享。
web层用的是:velocity + turbine.velocity是和jsp等同的一种语言。与Jsp相比,它更好地把显示功能独立出来(其实是因为velocity语言没有JSP功能强大)。velocity中没有复杂的逻辑,主要负责把vo中的对象显示出来。与struts解决jsp的缺点对应,我们这个系统用turbine作为控制层,连接显示层和业务层。控制层负责简单的校验,并调用delegate。delegate中调用session bean。
业务层主要封装在AO(Application Object)中。session bean中仅仅调用AO执行业务逻辑。从AO中返回Context直到控制层。之所以不从控制层直接调用AO的原因是为了以后的拓展,和分层、部署。
数据库持久层用的是ibatis。开发过程中专门有人负责DAO这块,我们只要把需要的接口告诉给他就可以了。ibatis是一个开源的框架。与hibernate不同的是它不是实现javabean 与 数据库表的映射,而是javabean与sql 语句的映射。而且所有的数据库操作可以放到xml文件中配置而不会硬编码到java程序中。
该框架还有一个特点是:数据库返回的是DO(Database Object),页面用的是VO(Value Object)。多个DO对象可以合并成一个VO对象,对应一个页面。
框架中用到了很多的服务,通过XML文件来配置服务。