SpringMVC+SpringBoot+MyBatis

 

1、在框架中有时候会发现dao层和service层是相同的代码,为何会同时存在呢?(如下https://blog.csdn.net/fanjieshanghai/article/details/88219652侵删)html

一、service是业务层,dao是数据访问层。
  记得之前刚学编程的时候,都是在service里直接调用dao,service里面就new一个dao类对象,调用,其余有意义的事没作,也不明白有这个有什么用,参加工做久了之后就会知道,业务才是工做中的重中之重。
  咱们都知道,标准主流如今的编程方式都是采用MVC综合设计模式,MVC自己不属于设计模式的一种,它描述的是一种结构,最终目的达到解耦,解耦说的意思是你更改某一层代码,不会影响我其余层代码,若是你会像spring这样的框架,你会了解面向接口编程,表示层调用控制层,控制层调用业务层,业务层调用数据访问层。初期也许都是new对象去调用下一层,好比你在业务层new一个DAO类的对象,调用DAO类方法访问数据库,这样写是不对的,由于在业务层中是不该该含有具体对象,最多只能有引用,若是有具体对象存在,就耦合了。当那个对象不存在,我还要修改业务的代码,这不符合逻辑。比如主板上内存坏了,我换内存,不必连主板一块儿换。我不用知道内存是哪家生产,不用知道多大容量,只要是内存均可以插上这个接口使用。这就是MVC的意义。
  接下来讲service的意义,其实由于你如今作东西分层次不是那么严格,在一个大家作东西业务自己也少,举个最简单的例子,你作一个分页的功能,数据1000条,你20条在一个页,你能够把这个功能写成工具类封装起来,而后在业务层里调用这个封装的方法,这才是业务里真正干得事,只要没访问数据库的,都要在业务里写。java

二、DAO接口web

为每一个DAO声明接口的好处在于:spring

①、能够在还没有实现具体DAO的时候编写上层代码,如Service里对DAO的调用数据库

②、能够为DAO进行多实现,例若有JDBCDAO实现,MyBatisDAO实现,而不须要更改上层代码,只须要简单的在Spring的IoC配置里修改一下注入的DAO实现编程

三、Service接口设计模式

①、能够在还没有实现具体Service状况下编写上层改代码,如Controller对Service的调用服务器

②、Spring不管是AOP仍是事务管理的实现都是基于动态代理的,而动态代理的实现依赖于接口,因此必须有接口的定义才能使用这些功能session

③、能够对Service进行多实现app

详见(https://www.jianshu.com/p/64abdd29bdf6 侵删)

  

至于为何service层要使用接口来定义有如下几点好处: 

  • 在java中接口是多继承的,而类是单继承的,若是你须要一个类实现多个service,你用接口能够实现,用类定义service就没那么灵活

  • 要提供不一样的数据库的服务时,咱们只须要面对接口用不一样的类实现便可,而不用重复地定义类

  • 编程规范问题,接口化的编程为的就是将实现封装起来,然调用者只关心接口不关心实现,也就是“高内聚,低耦合”的思想。

2、SSM框架接口速记:

https://blog.csdn.net/it_95/article/details/84103285侵删)

3、一篇详细介绍的文章

http://www.javashuo.com/article/p-fjmjkjsz-gg.html(侵删)

 

4、有关拦截器、过滤器和监听器:

一、过滤器:

  依赖于servlet容器,在实现上基于函数的回调,能够对几乎全部的请求进行过滤,可是缺点就是一个过滤器实例只能在容器初始化时调用一次。

  使用过滤器的目的是用来作一些过滤操做,获取咱们想要获取的数据,好比:在过滤器中修改字符编码;修改request的一些参数,包括:过滤低俗文字、危险字符等。

二、拦截器:

  依赖于web框架,在springMVC中就是依赖于SpringMVC框架。在实际上基于Java的反射机制,属于面向编程(AOP)的一种运用。

  因为拦截器是基于web框架的调用,所以可使用Spring的依赖注入进行一些业务操做,同时一个拦截器实例在一个controller生命周期内能够屡次调用。

  可是缺点是只能对controller请求进行拦截,对其余的一些好比直接访问静态资源的请求则没有办法进行拦截。

三、监听器:

  一种Servlet中的特殊的类,它们能帮助开发者监听web中的特定事件,实现了javax.servlet.ServletContextListener 接口的服务器端程序,

  它也是随web应用的启动而启动,只初始化一次,随web应用的中止而销毁。

  主要做用是:感知到包括request(请求域),session(会话域)和applicaiton(应用程序)的初始化和属性的变化。

  https://blog.csdn.net/learning__java/article/details/92566869  侵删

5、SpringMVC

相关文章
相关标签/搜索
本站公众号
   欢迎关注本站公众号,获取更多信息