1. Springboot 拦截器的使用
- 定义一个拦截类,该类实现 HandlerInterceptor 接口,实现 preHandler 方法。
- 定义一个配置类,该类继承 WebMvcConfigurer,覆写 addInterceptors 方法,其作用是将拦截器类注册都容器里面去,从而起到作用,并且指定拦截的请求的路径。
2. Springboot 的常用的注解
@SpringBootApplication,@Bean,@ EnableAutoConfiguration,@mapperScan 在写项目中用了哪些注解就写哪些.
这种问题只要把你做项目用过的注解说出来就可以了.可能面试官还会问你其他的SpringBoot的注解,如果真的不知道没关系,直接说这个没用过,面试完之后简单看一下就可以了.
1>
@Configuration
:在类上贴该注解表示该类是 Spring 的配置类,具有 applicationContext.xml 文件的作用。
2>
@Bean
:在 Spring 的配置类的方法上贴该注解后,该方法返回的对象会交给 Spring 容器管理,替代 applicationContext.xml 中的 bean 标签。
这个注解里面可以传参数:
initMethod:对应 bean 标签中的 init-method 属性,配置 bean 的初始化方法;
destroyMethod:对应 bean 标签中的 destroy-method 属性,配置 bean 的销毁方法。
3. Springboot 默认的支持对 Json 的解析
Springboot 默认使用的 json 解析框架是 jackson,使用 fastjson 需要配置可以使用阿里的 fastjson 的方法进行解析
4. 简单描述 Springboot 的自动装配原理
在SpringBoot的@SpringBootApplication注解中有一个注解@EnableAutoConfiguration,这个注解的功能就是实现自动装配的。他的作用主要是扫描导入每个jar中的spring.factory中的内容,然后把里面的内容读取到内存中,其实就是读取一堆的配置类。然后引入之后里面有些@Codictional的注解,根据特定的条件帮我们创建bean并注入,省去我们自己配置bean的过程,简化了开发步骤.
5. Springboot 你们用的是哪个版本? 你们是怎么统一异常处理?
关于SpringBoot的版本号,提供几个时间点给同学们,你们根据自己的简历来说对应的版本.
2.3.2.RELEASE
对于全局异常,我们项目中使用@ControllerAdvice+@ExceptionHandler来捕获全局的异常,
我自己自定义我的异常,在实现的时候,我根据不同的情况,抛出我的自己的异常,然后创建统一异常处理类(类上贴@ControllerAdvice注解),使用@ExceptionHandler锁定我的每一个异常,从而返回所要返回的信息(一般为JSON类型)
6为什么springboot要打成的jar包?
传统的java项目,不联网就打成jar包,联网要使用tomcat服务器,所以打成war包
但是springboot里面就内置了tomcat所以打成jar包
7springboot的日志框架,你使用的是哪个?
log4j log4j2和jul
我们用的是jul(jul_SLF4j)
8 springboot的工作原理
9Spring Boot中@PathVariable、@RequestParam和@RequestBody的区别和使用
/product/{pid}?name=mao
这三个注解放在参数前面,里面和后面的参数与路径的参数名字一致
@PathVariable : 问号前,通过{}来占位的用这个
@RequestParam:问号后,没有实体类去·对应的用这个
@RequestBody:问号后,domain里面有实体类对应的用这个
10 (Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的)介绍一下
@SpringBootApplication 注解
Spring Boot 的核心注解是@SpringBootApplication,它也是启动类使用的注解,主要包含了 3 个注解:
@SpringBootConfiguration:它组合了 @Configuration 注解,实现配置文件的功能。
@EnableAutoConfiguration:具有打开自动配置的功能,也可以关闭某个自动配置的选项。
@ComponentScan:用于Spring组件扫描。
11 两种配置文件 进行配置
1.application.yml 语法
server:
port: 80
session-timeout: 30
tomcat.uri-encoding: UTF-8
spring:
datasource:
url: jdbc:mysql://localhost:3306/crm
username: root
password: admin
driverClassName: com.mysql.jdbc.Driver
2. application.properties 语法
server.port=80
server.session-timeout=30
server.tomcat.uri-encoding=UTF-8
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/rbac
spring.datasource.username=root
spring.datasource.password=admin