Web五层架构
DAO层:
1.DAO层--[面向表]: 持久层、数据访问层,主要与数据库进行交互
介绍:
DAO层只是封装增删改查,比较底层,比较基础的操作,具体到对于某个表、某个实体的增删改查。至于增删查改如何去实现一个功能,dao是不管的。
在接口中对方法进行了定义,在UserDao.xml中给出了sql语句实现.
建议:
建议DAO只做原子操作,增删改查。
Entity层:
1.Entity层(domain层):model层、实体层 数据库在项目中的类
介绍:entity实体层,放置一个个实体,及其相应的set、get方法。如果想要对数据库进行一些操作(比如说读取)的话,就要先写entity层。
建议:
Service层
1.Service层(biz)--[面向业务]:业务层、服务层, 控制业务
介绍:
粗略的理解就是对一个或多个DAO进行的再次封装,封装成一个服务,所以这里也就不会是一个原子操作了,需要事物控制。service层里面的方法相较于dao层中的方法进行了一层包装,例如通过id查找用户,通过用户名查找用户,是在基础的操作上又增加了一层包装的,实现的是相对高级的操作。最后将这些操作在serviceimpl类中实现.
service层要使用接口来定义好处:
service实现类实现了service接口,进行具体的业务操作
1.在java中接口是多继承的,而类是单继承的.如果你需要一个类实现多个service,你用接口可以实现,用类定义service就没那么灵活
2.要提供不同的数据库的服务时,我们只需要面对接口用不同的类实现即可,而不用重复地定义类.
3.编程规范问题,接口化的编程为的就是将实现封装起来,然调用者只关心接口不关心实现,也就是“高内聚,低耦合”的思想.
建议:
Controller层:
1.Controller层(action层):控制层 控制业务逻辑
介绍:
Controler主要处理外部请求、负责请求转发,接受页面过来的参数,传给Service处理,接到返回值,再传给页面。
建议:
View层:
1.View层
介绍:
View层 此层与控制层结合比较紧密,需要二者结合起来协同工发,View层主要负责前台jsp页面的表示。
建议:
其流程为:Controller层调用Service层的方法,Service层调用Dao层中的方法,其中调用的参数是使用Entity层进行传递的。