JavaEE Spring有关的基础面试问题

Spring IOC/DI如何理解

DI:IOC的一种实现方式:构造方法注入+属性注入
实现原理:反射(通过类型和构造方法反射)+ASM字节码技术

Spring Bean容器如何理解

Bean容器就是为了不再自己管理对象,而是交给Spring框架容器来进行管理——IOC(依赖控制反转,控制权有程序交给了Spring容器)

AOP如何理解

AOP名词概念: 面向切面编程
应用场景: 统一业务逻辑处理,如事务管理,统一日志管理,统一异常处理,统一返回类型处理
实现方式:
1、JDK实现;被代理类需要实现一个接口,运行时动态生成代理类

//被代理类
public class 被代理类 implements A接口{
    
    
      public void doSomthing();
}

//代理类

public class 代理类 implements A接口{
    
    
      private 被代理类 对象;
      public 代理类(被代理类 O){
    
    
        this.对象 = O;
}
      public void doSomthing(){
    
    
      前置的统一业务();
      对象.doSomething();
      后置的统一业务();
}
}

Spring框架使用代理类完成工作。

2、CGLIB实现:代理类继承被代理类——(被代理类不需要实现接口)

SpringMVC处理的流程

详细处理流程
1、DispacherServlet——在SpringBoot默认的处理路径为/**,表示所有请求都由该Servle来处理
2、HandlerMapping——处理请求映射:根据请求信息来映射服务资源
3、HandleAdapter——处理适配器
4、Controller——处理请求
5、返回视图

注解解析

@Controller——类和方法上,注册一个处理Web请求的实例

@RestController:类上使用,方法默认都是@ResponseBody

@RequestMapping——类和方法上,表示接收请求的方式:如路径,请求方法,数据类型,少许和响应有关(数据类型) 服务提供的路径,由该注解路径,类和方法配置的路径字符串拼接,默认GET请求
在统一返回@ResponseBody时,可以使用简洁的注解
只提供某个请求方法的写法:
@GetMapping:等同于@RequestMapping(method = RequestMethod.GET)
@PostMapping:等同于@RequestMapping(method = RequestMethod.POST)

请求参数

@PathVariable:映射路径变量
@RequestParam:
省略注解时,默认的注解
支持:基本数据 类型,包装类型,自定义类型
接收:url请求数据,请求体中k=v格式的数据
@RequestBody:根据raw类型中具体的数据类型,来完成请求体到对象的转换(反序列化)默认是接收application/json

支持类型

HttpServletRequest/HttpServletResponse
HttpSession

响应

@ResponseBody:需要返回对象到指定数据类型(默认application/json)

注:不带@ResponseBody,表示返回某个服务资源(接收String返回值,表示资源路径)
转发写法:return“forward:路径”
重定向写法:return“redirect:路径”
注意:
1、路径是否以/开头,决定相对路径位置。
转发带/,以项目部署路径后为相对路径
重定向带/,会去掉项目部署路径
2、不带forward和redirect,为转发
带@ResponseBody:返回某个对象,序列化为某个指定格式的数据(默认json)
返回String,不会再序列化
返回null,响应体为空——项目开发时,自行封装。

SpringBoot

作用:自动化配置,简化开发(SpringBoot提供的默认的一些配置,如web、jdbc、其他的功能,第三方框架使用SpringBoot的规范,完成自动化配置工作)
自动化配置原理:
扫描依赖包下,META-INF/SpringBoot配置文件(spring.factories等),根据内容完成加载配置,进一步完成配置类的初始化配置工作
在这里插入图片描述
MyBatis占位符
#(变量名):sql中如字符串,替换占位符“变量的值”
$(变量名):sql中没有占位符,sql拼接,有些不需要带单引号的替换,需要使用,如字符串”abc“,order by 字段 $(变量名)
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/char_m/article/details/108961006