常用框架2

    xiaoxiao2022-06-30  160

    常用框架2之SSM,SpringBoot

    SSM(Spring,SpringMvc,Mybatis)

    Spring是一个轻量级的容器框架,核心是IOC(面向切面),AOP(控制反转)。 因为Spring在上一篇里面已经做了详细的解释,所以就不多讲了。

    ——SpringMvc

    SpringMvc的工作流程 ①. SpringMVC将所有的请求都提交给DispatcherServlet

    ②. DispatcherServlet收到请求调用HandlerMapping处理映射器

    ③. 处理映射器找到具体的处理器,生成处理器对象返回给DispatcherServlet

    ④. DispatcherServlet调用HandlerAdapter处理器适配器

    ⑤. HandlerAdapter经过适配调用具体的处理器Controller

    ⑥. Controller进行业务逻辑处理后,会返回一个ModelAndView

    ⑦. HandlerAdapter将Controller执行结果ModelAndView返回给DispatcherServlet

    ⑧. DispatcherServlet将ModelAndView传给ViewResolver视图解析器

    ⑨. ViewResolver解析后返回具体的View

    ⑩. DispatcherServlet根据View进行渲染视图并响应用户

    ——springmvc怎么防止SQL注入

    使用SpringMVC的拦截器实现防止SQL注入


    MyBatis


    像Mybatis一般都是在了解它的缓存机制 MyBatis提供了查询缓存来缓存数据,以提高查询的性能,MyBatis的缓存分为一级缓存和二级缓存。

    一级缓存:SqlSession级别的缓存,基于HashMap本地缓存,当同一个sqlSession执行两次相同的SQL语句时,第一次执行完后会将数据库中查询到的结果写到缓存,第二次查询时直接从缓冲中读取不经过数据库了。一级缓存默认时开启的

    二级缓存:mapper级别的缓存,也是基于hashmap本地缓存,不同的sqlSession两次执行相同的namespace下的sql语句,第二次查询就不会进行数据库了

    ——其实还可以在侧面了解MyBatis 比如Hibernate与mybatis区别

    开发效率方面:

    ①. hibernate开发中,sql语句已经被封装,直接可以使用,加快系统开发(但是对于庞大复杂系统项目来说,负责语句较多,hibernate就不是一个很好的方案)

    ②. Mybatis属于半自动化,sql需要手工完成,稍微繁琐

    SQL优化方面

    ①. Hibernate自动生成SQL,有些语句较为繁琐,会多消耗一些性能

    ②. MyBatis手动编写SQL,可以避免不需要的查询,提高系统性能

    对象管理方面

    ①. hibernate是完整的ORM框架,开发过程中,无需过多关注底层实现,只需要管理对象即可

    ②. MyBatis需要自行管理映射关系


    SpringBoot


    SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式来进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于在蓬勃发展的快速应用开发领域(rapid application development)成为领导者。

    然后SpringBoot的优点

    SpringBoot能够帮助开发者快速启动一个Web容器;

    SpringBoot继承了Spring框架的原有优秀基因;

    SpringBoot简化了Spring的开发过程;

    SpringBoot更多的是使用了Java Config的方式,对Spring进行配置;

    application.properties和application.yml文件可以放在以下四个位置(优先级由高到低):

    外置,在相对于应用程序运行目录的/congfig子目录里。

    外置,在应用程序运行的目录里

    内置,在config包内

    内置,在Classpath根目录

    同样,这个列表按照优先级排序,也就是说,src/main/resources/config下application.properties覆盖src/main/resources下application.prope


    最新回复(0)