一. Spring
一. IoC
- IoC(Inverse of Control:控制反转)是一种设计思想,就是 将原本在程序中手动创建对象的控制权,交由Spring框架来管理。 IoC 在其他语言中也有应用,并非 Spring 特有。IoC 容器是 Spring 用来实现 IoC 的载体, IoC 容器实际上就是个Map(key,value),Map 中存放的是各种对象。
- IoC 容器就像是一个工厂一样,当我们需要创建一个对象的时候,只需要配置好配置文件/注解即可,完全不用考虑对象是如何被创建出来的。
- Spring 时代我们一般通过 XML 文件来配置 Bean,后来开发人员觉得 XML 文件来配置不太好,于是 SpringBoot 注解配置就慢慢开始流行起来。
二. AOP
- AOP(Aspect-Oriented Programming:面向切面编程)能够将那些与业务无关,却为业务模块所共同调用的逻辑或责任(例如事务处理、日志管理、权限控制等)封装起来,便于减少系统的重复代码,降低模块间的耦合度,并有利于未来的可拓展性和可维护性。
- Spring AOP就是基于动态代理的。使用 AOP 之后我们可以把一些通用功能抽象出来,在需要用到的地方直接使用即可,这样大大简化了代码量。
三. 用到了哪些设计模式
- 工厂设计模式 : Spring使用工厂模式通过 BeanFactory、ApplicationContext 创建 bean 对象。
- 代理设计模式 : Spring AOP 功能的实现。
- 单例设计模式 : Spring 中的 Bean 默认都是单例的。
- 模板方法模式 : Spring 中 jdbcTemplate、hibernateTemplate 等以 Template 结尾的对数据库操作的类,它们就使用到了模板模式。
- 包装器设计模式 : 我们的项目需要连接多个数据库,而且不同的客户在每次访问中根据需要会去访问不同的数据库。这种模式让我们可以根据客户的需求能够动态切换不同的数据源。
- 观察者模式: Spring 事件驱动模型就是观察者模式很经典的一个应用。
- 适配器模式 :Spring AOP 的增强或通知(Advice)使用到了适配器模式、spring MVC 中也是用到了适配器模式适配Controller。
二. SpringMVC
- 对SpringMVC的理解: MVC 是一种设计模式,Spring MVC 是一款很优秀的 MVC 框架。Spring MVC 可以帮助我们进行更简洁的Web层的开发,并且它天生与 Spring 框架集成。Spring MVC 下我们一般把后端项目分为 Service层(处理业务)、Dao层(数据库操作)、Entity层(实体类)、Controller层(控制层,返回数据给前台页面)。
- 工作流程

-
- 客户端(浏览器)发送请求,直接请求到
DispatcherServlet
。
-
DispatcherServlet
根据请求信息调用 HandlerMapping
,解析请求对应的 Handler
。
-
- 解析到对应的
Handler
(也就是我们平常说的 Controller 控制器)后,开始由 HandlerAdapter
适配器处理。
-
HandlerAdapter
会根据 Handler 来调用真正的处理器来处理请求,并处理相应的业务逻辑。
-
- 处理器处理完业务后,会返回一个 ModelAndView 对象,Model 是返回的数据对象,View 是个逻辑上的 View。
-
- ViewResolver 会根据逻辑 View 查找实际的 View。
-
- DispaterServlet 把返回的 Model 传给 View(视图渲染)。
-
- 把 View 返回给请求者(浏览器)
- SpringMVC怎么管理的bean
三. SpringBoot
- 对springboot的了解,比起spring有什么优势,经常用哪些注解
-
- Spring Framework 旨在简化 J2EE 企业应用程序开发,而springboot旨在简化Spring的开发,大部分 Spring Boot 项目只需要少量的配置即可
-
- 优势:
不需要编写大量样板代码、XML 配置和注释
可以很容易地与 Spring 生态系统集成
Spring Boot 应用程序提供嵌入式 HTTP 服务器,可以轻松地开发和测试 web 应用程序
提供了多种插件
- spring mvc 和springboot有什么区别
- Spring MVC是Spring的一个模块,是一个web框架。
二. Mybatis
- mybatis框架了解吗,怎么从dao层实体类映射到数据库,怎么从数据库映射到dao层实体类的
- mybatis的设计模式