框架初学

75 阅读4分钟

一. Spring

一. IoC

  1. IoC(Inverse of Control:控制反转)是一种设计思想,就是 将原本在程序中手动创建对象的控制权,交由Spring框架来管理。 IoC 在其他语言中也有应用,并非 Spring 特有。IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象
  2. IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。
  3. Spring 时代我们一般通过 XML 文件来配置 Bean,后来开发人员觉得 XML 文件来配置不太好,于是 SpringBoot 注解配置就慢慢开始流行起来。

二. AOP

  1. AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
  2. Spring AOP就是基于动态代理的。使用 AOP 之后我们可以把一些通用功能抽象出来,在需要用到的地方直接使用即可,这样大大简化了代码量。

三. 用到了哪些设计模式

  1. 工厂设计模式 : Spring使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。
  2. 代理设计模式 : Spring AOP 功能的实现。
  3. 单例设计模式 : Spring 中的 Bean 默认都是单例的。
  4. 模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。
  5. 包装器设计模式 : 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。
  6. 观察者模式: Spring 事件驱动模型就是观察者模式很经典的一个应用。
  7. 适配器模式 :Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller。

二. SpringMVC

  1. 对SpringMVC的理解: MVC 是一种设计模式,Spring MVC 是一款很优秀的 MVC 框架。Spring MVC 可以帮助我们进行更简洁的Web层的开发,并且它天生与 Spring 框架集成。Spring MVC 下我们一般把后端项目分为 Service层(处理业务)、Dao层(数据库操作)、Entity层(实体类)、Controller层(控制层,返回数据给前台页面)。
  2. 工作流程

图片.png

    1. 客户端(浏览器)发送请求,直接请求到 DispatcherServlet
    1. DispatcherServlet 根据请求信息调用 HandlerMapping,解析请求对应的 Handler
    1. 解析到对应的 Handler(也就是我们平常说的 Controller 控制器)后,开始由 HandlerAdapter 适配器处理。
    1. HandlerAdapter 会根据 Handler 来调用真正的处理器来处理请求,并处理相应的业务逻辑。
    1. 处理器处理完业务后,会返回一个 ModelAndView 对象,Model 是返回的数据对象,View 是个逻辑上的 View。
    1. ViewResolver 会根据逻辑 View 查找实际的 View。
    1. DispaterServlet 把返回的 Model 传给 View(视图渲染)。
    1. 把 View 返回给请求者(浏览器)
  1. SpringMVC怎么管理的bean

三. SpringBoot

  1. 对springboot的了解,比起spring有什么优势,经常用哪些注解
    1. Spring Framework 旨在简化 J2EE 企业应用程序开发,而springboot旨在简化Spring的开发,大部分 Spring Boot 项目只需要少量的配置即可
    1. 优势:
不需要编写大量样板代码、XML 配置和注释
可以很容易地与 Spring 生态系统集成
Spring Boot 应用程序提供嵌入式 HTTP 服务器,可以轻松地开发和测试 web 应用程序
提供了多种插件
  1. spring mvc 和springboot有什么区别
  • Spring MVC是Spring的一个模块,是一个web框架。

二. Mybatis

  1. mybatis框架了解吗,怎么从dao层实体类映射到数据库,怎么从数据库映射到dao层实体类的
  2. mybatis的设计模式