框架面试要点

SpringMVC流程

客户端发送请求到前端控制器,前端控制器DispatcherServlet接收客户端请求,并转发给处理器映射,处理器HandlerMapping解析请求对应的Handler,HandlerAdapter会根据Handler来调用真正的处理器开始处理请求,并处理相应的业务逻辑,处理器返回一个模型视图ModleAndView,然后视图解析器进行解析,返回一个视图对象,视图对象返回给前端控制器DispatcherServlet,然后渲染数据Moder 将得到的视图对象返回给用户。

Mybatis

封装了jdbc,支持用Java代码操纵数据库 省去了手写sql的麻烦 但是前提是配置文件中得写好sql

Mybatisplus

在mybatis基础上只做增强不做改变 可以避免许多重复工作
提供简单的增删改查操作 以及多条件分页查询等等,只支持单表

条件构造器

JDBC和Mybatis的关系

Mybatis封装了JDBC

说一说Spring

Spring是一个轻量级的容器框架,其核心就是IOD、DI、AOP

什么是依赖注入?几种方式?

使用注解@Autowired实现依赖注入;

只有被spring容器管理的对象才可以被依赖注入. 默认的条件下采用类型注入.如果有特殊需求也可以采用名称注入

方式:

构造器注入,将被依赖对象通过构造函数的参数注入给依赖对象,并且在初始化对象的时候注入。

setter方法注入,通过调用成员变量提供的setter函数将被依赖对象注入给依赖类。

接口注入,依赖类必须要实现指定的接口,然后实现该接口中的一个函数,该函数就是用于依赖注入。该函数的参数就是要注入的对象。

什么是IOC?

指控制反转。可以理解为,类的控制权移交给spring容器来完成,由spring控制生成(初始化)、调用等动作,类的(bean的)的控制权是通过set、构造函数、强制赋值这些方式交到spring容器的。

什么是AOP?

是面向切面编程,java中他是使用代理模式来实现的,我们可以理解为面向规则,面向规定的编程,这是种思想,他其实就是解耦的一种思想。

其核心是代理机制,分为JDK代理和CGlib代理两种

切面 = 切入点表达式 + 通知方法

通知方法

1. @Before(“pointcut()”)
2. @AfterReturning(“pointcut()”)
3. @AfterThrowing(“pointcut()”)
4. @After(“pointcut()”)

用作记录日志

5. @around环绕通知 可以控制目标方法是否执行. 环绕通知可以控制业务流转的过程!!!

切入点表达式

bean表达式

语法:@Pointcut("bean(类名)")

within表达式

语法:@Pointcut("within(包名.类名))

execution表达式

语法:@Pointcut("execution(返回值类型 包名.类名.方法名(参数列表))")

@annotation表达式   自定义注解

语法:@Pointcut("@annotation(自定义注解路径)")

作用:为原始对象增加额外功能,解耦,便于原始对象的维护

解释一下开箱即用

springBoot将繁琐的配置封装到某些jar包中. 该jar包中的文件已经完成了配置.引入即可使用.只需要少量的配置就可以获取其功能的方式 叫做 “开箱即用”

通过@EnableAutoConfiguration 启动自动化的配置,实现开箱即用,当主启动类启动,加载配置spring-boot-start-xxx的功能
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值