SpringBoot面试题

1. Springboot 拦截器的使用

  1. 定义一个拦截类,该类实现 HandlerInterceptor 接口,实现 preHandler 方法。
  2. 定义一个配置类,该类继承 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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一苇以航QvQ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值