
在SSH整合框架中Service层的作用
在SSH整合框架中经常会用到Service层,请问大家这个Service层有什么具体的作用,可不可以不用这个Service层呢?能说的具体一点吗?...
在SSH整合框架中经常会用到Service层,请问大家这个Service层有什么具体的作用,可不可以不用这个Service层呢?
能说的具体一点吗? 展开
能说的具体一点吗? 展开
4个回答
2015-08-13 · 知道合伙人金融证券行家
关注

展开全部
从字面的意思上来看,service是业务层,dao是数据访问层。
标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是更改某一层代码,不会影响其他层代码,如果会像spring这样的框架,会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。
初期也许都是new对象去调用下一层,比如在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。当那个对象不存在,还要修改业务的代码,这不符合逻辑。
例如:
1、假设现在做这个功能会用到user表和权限表,那么前台的页面访问action,action再去调用用户模块service,用户模块service判断你是操作user表还是权限表,如果操作的是user表则service的实现类就去调用userDAO,如果是操作的是权限表则调用权限的DAO。
2、也就是说DAO一定是和数据库的每张表一一对应,而service则不是。其实一个项目一个service和一个DAO其实也一样可以操作数据库,只不过那要是表非常多,出问题了,那找起来多麻烦,而且太乱了。
3、好处就是整个项目非常系统化,和数据库的表能一致,而且功能模块化,这样以后维护或者改错比较容易,性能也高一些。
标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是更改某一层代码,不会影响其他层代码,如果会像spring这样的框架,会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。
初期也许都是new对象去调用下一层,比如在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。当那个对象不存在,还要修改业务的代码,这不符合逻辑。
例如:
1、假设现在做这个功能会用到user表和权限表,那么前台的页面访问action,action再去调用用户模块service,用户模块service判断你是操作user表还是权限表,如果操作的是user表则service的实现类就去调用userDAO,如果是操作的是权限表则调用权限的DAO。
2、也就是说DAO一定是和数据库的每张表一一对应,而service则不是。其实一个项目一个service和一个DAO其实也一样可以操作数据库,只不过那要是表非常多,出问题了,那找起来多麻烦,而且太乱了。
3、好处就是整个项目非常系统化,和数据库的表能一致,而且功能模块化,这样以后维护或者改错比较容易,性能也高一些。
展开全部
有效地分离数据访问层(DAO)和业务层(SERVICE),使之各司其职,举例说明:如果DAO层访问数据库,得到的数据根据业务需要要进行加密,那么取数据和把数据加密就是2个步骤,访问数据和业务逻辑加工,如果去掉任意一层,那么剩下的那一层就超出工作范围了,所以DAO层就是取数据用的,SERVICE层就是加工数据用的,这就实现了数据访问层和业务逻辑层的有效分离
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼说的对,加密解密数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询