当前位置: 代码迷 >> 综合 >> springboot interview ready
  详细解决方案

springboot interview ready

热度:44   发布时间:2023-10-25 18:40:41.0

文章目录

      • 1. 什么是springboot:
      • 2. 为什么要用他:
      • 3. 配置文件有哪几个: application.properties,yml
      • 4. 开启 Spring Boot 特性有哪几种方式?
      • 5. 你如何理解 Spring Boot 中的 Starters?
      • 6. springboot默认配置源:
      • 7. 如何在 Spring Boot 启动的时候运行一些特定的代码?
      • 8. Spring Boot 有哪几种读取配置的方式?
      • 9. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?
      • 10. springboot热部署的几种方式
      • 11. springboot如何使用redis
      • 12. springboot自定义异常
      • 12. springboot整合mybatis
      • 13. springboot bean启动顺序
      • 14. 定时任务使用
      • 16. springboot多个实例如何只调用一次定时任务
      • 17. 定时任务单线程
      • 18. springboot异步使用
      • 20. springboot自定义注解
      • 21 springboot自动装配原理
      • 22 理解spring-boot-starter-parent
      • 23 springboot session共享

1. 什么是springboot:

		能够快速构建spring应用的框架。

2. 为什么要用他:

		1. 减少了配置,提倡约定大于配置。 2. 解决依赖包的问题。3. 很容易上手4. 自带tomcat服务器

3. 配置文件有哪几个: application.properties,yml

	Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?springBootApplication(组合注解)包括(enableautoConfiguration,componentScan,springbootconfiguration)@SpringBootConfiguration: springboot相关配置@enableautoConfiguration: 开启spring应用程序的自动配置,比如添加了spring-boot-starter-			    web,则会自动帮我们配置tomcat、springmvc.@componentScan: 默认扫描主类以及子类下的包。

4. 开启 Spring Boot 特性有哪几种方式?

	spring-boot-starter-parent

5. 你如何理解 Spring Boot 中的 Starters?

	相当于一个启动器,里面包含了很多相关的依赖包,不需要人为的去导入依赖。 比如常见starter: starter-web、starter-data-redis、starter-log4j

6. springboot默认配置源:

	  HikariCP

7. 如何在 Spring Boot 启动的时候运行一些特定的代码?

	实现接口commandLineRunner, 里面有个run方法,Order指定执行的一个顺序。

8. Spring Boot 有哪几种读取配置的方式?

	使用Environment进行读取,  @Autowired  private Environment environment;String property = environment.getProperty("server.port");自定义配置文件@Configuration@ConfigurationProperties@PropertySource("classpath:application-mq.properties")

9. Spring Boot 支持哪些日志框架?推荐和默认的日志框架是哪个?

	log4j,Log4j2,Lockback. 默认是lockback.

10. springboot热部署的几种方式

	在pom文件里加入spring-boot-devtools即可。

11. springboot如何使用redis

		1. 导入starter-data-redis2. 配置文件里指定端口与是否密码之内的3. 依赖注入StringRedisTemplate或ReidsTemplate来进行获取值。区别:1. StringRedisTemplate继承了RedisTemplate。2. RedisTemplate是个泛型类而StringRedisTemplate不是。3. StringRedisTemplate中k、v都是string类型,RedisTemplate都是object类型

12. springboot自定义异常

		定义一个异常类使用ControllerAdvice注解,定义一个方法,使用exceptionHander      (Exception.class)注解。    

12. springboot整合mybatis

		1. pom文件导入相关依赖2. xml配置: mybatis.xml位置、pojo位置、映射xml位置3. 启动项加入MapperScan扫描mapper(相当于dao)

13. springboot bean启动顺序

		1.   使用depondsOn(value="")2.   把后加载的类放到深一点的地方。

14. 定时任务使用

	1. 在主类上使用@enableScheduling注解2. 方法上使用Scheduled(fixedDelay,fixedRate)3. fixedDelay(每隔多少秒执行一次,无论这个方法执行都久都要等fixedRate: 如果ONE_Minute为3秒,而t2方法执行了10秒,那么本来过了3秒该第二次执行了,但是由于t2依然再执行,所以这个时候会等待第一次执行完了立马第二次执行,不会再等待3秒了	   

16. springboot多个实例如何只调用一次定时任务

	1. 通过配置文件设置一个变量,那个实例启动,那个不启动。2. 也可以单独弄一个项目管理配置文件

17. 定时任务单线程

		默认是单线程,可以通过配置改成多线程。@Configurationpublic class ScheduleConfig {@Beanpublic TaskScheduler taskScheduler() {ThreadPoolTaskScheduler scheduler = new ThreadPoolTaskScheduler();scheduler.setPoolSize(10);return scheduler;}}

18. springboot异步使用

1. 在主类加上@enableasyn注解
2. 要在异步使用的方法上加上@Async就行

20. springboot自定义注解

在这里插入图片描述

21 springboot自动装配原理

启动类上加了@SpringBootApplication,这是一个组合注解
下面有三个核心注解:

  1. @springbootConfiguration 对应的是自己这边配置文件
  2. @enableAutoConfiguration 对应的是pom文件里的starter,会自动进行解析加载启动器。
  3. @ComponentScan 自动扫描类,默认扫描的是启动器下的子类。类似于spring中xml配置文件里的context:component-scan

22 理解spring-boot-starter-parent

  1. 里面定义了java的编译版本,2.0.6默认是jdk1.8
  2. 编码格式utf-8
  3. 里面有个spring-boot-dependencies定义了jar包的版本号
  4. 资源过滤等等。

23 springboot session共享

  1. 加入依赖包即可在这里插入图片描述
  2. 然后就该怎么使用就怎么使用,没有任何特别之处。在这里插入图片描述在这里插入图片描述在这里插入图片描述
  相关解决方案