springboot知识整理

1、Spring Boot 是什么?

  spring boot来简化spring应用开发,约定大于配置,去繁从简,just run就能创建一个独立的,产品级别的应用。

2、Spring Boot 有哪些优点?

  1、快速构建项目。

  2、对主流开发框架的无配置集成。

  3、项目可独立运行,无需外部依赖 Servlet 容器。

  4、提供运行时的应用监控。

  5、极大地提高了开发、部署效率。

  6、与云计算的天然集成。

3、springboot的核心思想是什么?

  spring Boot采用约定优于配置的方式,大量的减少了配置文件的使用。

  一些约定:

  1、默认由 resources 文件夹存放配置文件
  2、默认打包方式为 jar
  3、spring-boot-starter-web 中默认包含 spring mvc 相关依赖以及内置的 tomcat 容器
  4、默认提供 application.properties/yml 文件
  5、默认通过 spring.profiles.active 属性来决定运行环境时读取的配置文件

4、 Spring Boot 有哪些核心模块?

  spring-boot:SpringBoot核心工程。

  spring-boot-starters:SpringBoot的启动服务工程。

  spring-boot-autoconfigure:是SpringBoot实现自动配置的核心工程。

  spring-boot-actuator:提供SpringBoot应用的外围支撑性功能。 通过Actuator可以在生产环境监控当前应用的健康,虚拟机等信息,通过前端以可视化的界面展示出来。

  spring-boot-tools:提供了SpringBoot开发者的常用工具集。诸如,spring-boot-gradle-plugin,spring-boot-maven-plugin就是这个工程里面的。

5、Spring Boot 的核心注解是哪个??

  SpringBoot的核心注解是@SpringBootApplication由以下3个注解组成:

  @SpringBootConfiguration:它组合了Configuration注解实现了 配置文件的功能。

  @EnableAutoConfiguration:打开自动配置功能,也可以关闭某个指定的自动配置选项,如关闭数据源自动配置功能: @SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。

  @ComponentScan:Spring扫描组件。

6、SpringBoot的依赖管理和自动配置

    依赖管理:Spring Boot 项目默认依赖了一个父项目。父项目中声明了开发中常用的依赖的版本号,称为自动版本仲裁机制。这也就是说默认的依赖都不需要写版本号。

  自动配置:Spring Boot 先加载所有自动配置类 xxxAutoConfiguration。每个自动配置类会根据 @Conditional 生效,即按需配置。如果生效,会绑定配置文件的默认值。这个默认值从 xxxProperties类中取,而 xxxProperties 则与 application.properties 进行了绑定。

7、自动配置原理

  在@EnableAutoConfiguration注解内使用到了@import注解来完成导入配置的功能,而EnableAutoConfigurationImportSelector内部则是使用了SpringFactoriesLoader.loadFactoryNames方法进行扫描具有META-INF/spring.factories文件的jar包。
  文件里是“key = value”一样的格式,"\"是一个换行符,作用是换行,重点就是这个value:比如org.mybatis.spring.boot.autoconfigure.MybatisAutoConfiguration。这个就是mybatis自动配置的入口点了,这个完整类名也会通过loadFactoryNames方法存放到List集合中,从而加载并初始化。
  用 exclude 属性可以排除指定的类。

8、springboot中过滤器和拦截器区别

  1、Filter是基于函数回调 doFilter(),而Interceptor则是基于AOP思想。
  2、Filter在只在Servlet前后起作用,而Interceptor够深入到方法前后、异常抛出前后等
  3、Filter依赖于Servlet容器即web应用中,而Interceptor没有限制。
  4、在接口调用的生命周期里,Interceptor可以被多次调用,而Filter只能在容器初始化时调用一次。

9、Spring Boot 支持哪些日志框架?

  Spring Boot 支持 Java Util Logging, Log4j2, Lockback 作为日志框架,如果你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架。

10、Spring Boot 支持哪些模板引擎?

  Thymeleaf、FreeMarker、Velocity、Groovy、Mustache

11、Spring Boot 怎么解决跨域问题?

  1、返回新的CorsFilter
  2、重写WebMvcConfigurer
  3、使用注解(@CrossOrigin)
  4、手工设置响应头(HttpServletResponse )

posted @ 2021-09-04 14:23  洛言羽  阅读(193)  评论(0)    收藏  举报