关于java三层开发中的一些关系
-bp
|--entity 业务实体
|--hbm.xml hbm.xml映射
-dto
|--dto 数据传送对象,数据打包在其中传送
business(业务模块包)
|--BS
-bp
|--bsimp
|--bpo
-rp
|--Action
|--ActionForm
bs,bsimp,bpo,action,actionform这几个的关系用简单的方式描述1下 展开
BPO这个东西我不是很了解,去网上看了看貌似是说是商务流程外包.网上的解释都是一些很官方的解释,感觉和我们具体开发的业务不是很有关系.这里我就不说了。这里我主要给你讲讲bs,bsimp以及action,actionForm的关系吧
首先你要知道Action在b/s架构中充当的身份,根据MVC思想来说的话,Action在每个业务模块中充当的是一个控制器的角色.而Controller在整个系统中充当一个总的控制器.
客户端(Browser)发送一个请求,Controller会根据请求的URL来决定将该请求交给哪个Action去处理。
在这里,ActionForm的作用就体现出来了,Action层中是不会处理任何的业务逻辑的,真正的业务逻辑是交给bs层也就是业务层去处理的。但是客户端发送过来的数据如何传递给业务逻辑层呢?
就是通过ActionForm.在Action中,会将相应ActionForm中的数据封装到具体的某一个业务对象里。
实际开发当中,一般情况下一个业务对象对应一个Form表单的.
封装完业务对象之后,Action就会根据具体的请求选择调用某一个业务接口。
这时候bs就出现了。bs和bsimp主要体现的是java中面向接口的编程,也就是面向抽象的编程。
在bs包内,全都都是接口。而bsimpl包内都是各个接口的实现类。为什么会有这样的思想??
因为考虑到将来系统的扩展,以及业务层不同的实现方案,所以必须把bs设计为接口,而根据具体的需求为每个接口添加实现类.
这样在Action层就不需要知道bs接口具体是如何实现的了,他只要负责调用这个接口,而这个接口可以根据配置文件的信息,根据具体的需求去调用不同的实现类。
最后就是Dao层了。这个层是为了访问DB,进行持久化的,这一层也会用到面向接口的编程.
最后数据处理完成之后,在通过Controller选择具体的展示页面,返回给客户端Browser.
最后我给你大概画了下流程图,比价丑陋,但是应该可以看懂,希望能够帮助你,谢谢