ssh 框架引入service_SSH框架中service层的作用

先直接copy一份过来,慢慢消化。

说一下目前的理解:

首先,我搞清楚了层次架构的轮廓,spring框架,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。

wapdemo工程中,表示层即JSP,控制层即controller,controller调用了memberservice,memberservice又new一个dao对象,调用了数据访问层,这样一层一层逐层调用。层次分明,且没有耦合,达到了解耦的目的,使用框架的目的也就达到了。所以,也许吧,后来按照伟伟的方法改的时候,才可以直接改几个部分,就依然能够方便的在list.html页面展示数据库中自定义的留言内容。

service层的作用,目前明确的印象是,为了框架,为了解耦,框架必须的一层!具体原理其实并没有理解,以后要多多回顾思考。

从字面的意思上来看,service是业务层,dao是数据访问层。

记得刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其他有意义的事没做,因为也不知道应该在里面写些什么有意义的代码,也不明白有这个有什么用,甚至还觉得不要serivce层不更好,省点功夫,反正它不也就是copy了一次dao层然后改个名字而已么……

我们都知道,标准主流现在的编程方式都是采用MVC综合设计模式,MVC本身不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其他层代码,如果你会像spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。初期也许都是new对象去调用下一层,比如你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,因为在业务层中是不应该含有具体对象,最多只能有引用,如果有具体对象存在,就耦合了。当那个对象不存在,我还要修改业务的代码,这不符合逻辑。好比主板上内存坏了,我换内存,没必要连主板一起换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存都可以插上这个接口使用。这就是MVC的意义。

接下来说如果现在感觉不到service的存在意义,其实因为现在做东西分层次不是那么严格,在一个你们做东西业务本身也少,举个最简单的例子,你做一个分页的功能,数据1000条,你20条在一个页,你可以把这个功能写成工具类封装起来,然后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写。

比说你现在用的是SSH框架,做一个用户模块: 1、假设现在你做这个功能会用到user表和权限表,那么你前台的页面访问action,action再去调用用户模块service,用户模块service判断你是操作user表还是权限表,如果你操作的是user表则service的实现类就去调用userDAO。如果是操作的是权限表则调用权限的DAO 2、也就是说DAO一定是和数据库的每张表一一对应,而service则不是。明白的没?其实你一个项目一个service和一个DAO其实也一样可以操作数据库,只不过那要是表非常多,出问题了,那找起来多麻烦,而且太乱了 3、好处就是你的整个项目非常系统化,和数据库的表能一致,而且功能模块化,这样以后维护或者改错比较容易,性能也高一些

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值