springboot知识点归纳

1、什么是 Spring Boot?

Spring Boot 是 Spring 开源组织下的子项目,是 Spring 组件一站式解决方案,主要是简化了使用 Spring 的难度,简省了繁重的配置,提供了各种启动器,开发者能快速上手。

  • 1.用来简化spring应用的初始搭建以及开发过程 使用特定的方式来进行配置(properties或yml文件)
  • 2.创建独立的spring引用程序 main方法运行
  • 3.嵌入的Tomcat 无需部署war文件
  • 4.简化maven配置(各种start)
  • 5.自动配置spring添加对应功能starter自动化配置

2、为什么要用 Spring Boot?

  • Spring Boot 优点非常多,如:
  • 独立运行
  • 简化配置
  • 自动配置
  • 无代码生成和XML配置
  • 应用监控
  • 上手容易

3、Spring Boot 的核心配置文件有哪几个?它们的区别是什么?

Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。application 配置文件这个容易理解,主要用于 Spring Boot 项目的自动化配置。bootstrap 配置文件有以下几个应用场景。

  • 使用 Spring Cloud Config 配置中心时,这时需要在 bootstrap 配置文件中添加连接到配置中心的配置属性来加载外部配置中心的配置信息;
  • 一些固定的不能被覆盖的属性;
  • 一些加密/解密的场景;

4、Spring Boot 的配置文件有哪几种格式?它们有什么区别?

.properties 和 .yml,它们的区别主要是书写格式不同。
1).properties

app.user.name=javastack

2).yml

app:
  user:
    name: javastack

另外,.yml 格式不支持 @PropertySource 注解导入配置。

5、Spring Boot的核心注解是哪个?它主要由哪几个注解组成的?

启动类上面的注解是@SpringBootApplication,它也是 Spring Boot 的核心注解,主要组合包含了以下 3 个注解:

  • @SpringBootConfiguration:组合了 @Configuration 注解,实现配置文件的功能。
  • @EnableAutoConfiguration:打开自动配置的功能,也可以关闭某个自动配置的选项,如关闭数据源自动配置功能:
@SpringBootApplication(exclude = { DataSourceAutoConfiguration.class })。
  • @ComponentScan:Spring组件扫描。

6、开启 SpringBoot特性有哪几种方式?

  • 继承spring-boot-starter-parent项目
  • 导入spring-boot-dependencies项目依赖

具体请参考这篇文章《Spring Boot开启的2种方式》

7、SpringBoot需要独立的容器运行吗?

可以不需要,内置了 Tomcat/ Jetty 等容器。

8、运行SpringBoot有哪几种方式?

  • 打包用命令或者放到容器中运行
  • 用 Maven/ Gradle 插件运行
  • 直接执行 main 方法运行

9、SpringBoot自动配置原理是什么?

注解 @EnableAutoConfiguration, @Configuration, @ConditionalOnClass 就是自动配置的核心,首先它得是一个配置文件,其次根据类路径下是否有这个类去自动配置。

具体看这篇文章《Spring Boot自动配置原理、实战》

10、SpringBoot的目录结构是怎样的?

11、如何理解SpringBoot中的Starters?

  • Starters可以理解为启动器,它包含了一系列可以集成到应用里面的依赖包,你可以一站式集成 Spring 及其他技术,而不需要到处找示例代码和依赖包。如你想使用 Spring JPA 访问数据库,只要加入 spring-boot-starter-data-jpa 启动器依赖就能使用了。
  • Starters包含了许多项目中需要用到的依赖,它们能快速持续的运行,都是一系列得到支持的管理传递性依赖。具体请看这篇文章《Spring Boot Starters启动器》

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

可以实现接口 ApplicationRunner

package org.springframework.boot;

@FunctionalInterface
public interface ApplicationRunner {
    void run(ApplicationArguments args) throws Exception;
}

或者 CommandLineRunner

package org.springframework.boot;

@FunctionalInterface
public interface CommandLineRunner {
    void run(String... args) throws Exception;
}

这两个接口实现方式一样,它们都只提供了一个 run 方法,
具体请看这篇文章《Spring Boot Runner启动器》

13、Spring Boot有哪几种读取配置的方式?
Spring Boot 可以通过

  • @Value (yml、properties)
    @Value("${my.message}")
    private String myMessage;

    @GetMapping("/test1")
    private String test1(){
        return myMessage;
    }
  • @Environment (yml、properties)
    @Autowired
    Environment environment;

    @GetMapping("/test2")
    private String test2(){
        String property = environment.getProperty("my.message");
        return property;
    }
  • @PropertySource (properties)
  • @ConfigurationProperties (yml、properties)

来绑定变量,具体请看这篇文章《Spring Boot读取配置的几种方式》

14、SpringBoot支持哪些日志框架?推荐和默认的日志框架是哪个?

Spring Boot 支持Java Util Logging, Log4j2, Lockback作为日志框架

如果你使用 Starters 启动器,Spring Boot 将使用 Logback 作为默认日志框架

具体请看这篇文章《Spring Boot日志集成》

15、SpringBoot实现热部署有哪几种方式?

主要有两种方式:

  • Spring Loaded
  • Spring-boot-devtools

Spring-boot-devtools 使用方式可以参考这篇文章《Spring Boot实现热部署》

16、如何理解 Spring Boot 配置加载顺序?

在 Spring Boot 里面,可以使用以下几种方式来加载配置。

17、Spring Boot 如何定义多套不同环境配置?

提供多套配置文件,如:

18、Spring Boot 可以兼容老 Spring 项目吗,如何做?

可以兼容,使用@ImportResource注解导入老 Spring 项目配置文件。

19、保护 Spring Boot 应用有哪些方法?

20、Spring Boot 2.X 有什么新特性?与 1.X 有什么区别?

  • 配置变更
  • JDK 版本升级
  • 第三方类库升级
  • 响应式 Spring 编程支持
  • HTTP/2 支持
  • 配置属性绑定
  • 更多改进与加强…

21.springboot与spring的区别.

引用自官方说法:

java在集成spring等框架需要作出大量的配置,开发效率低,繁琐.

所以官方提出 spring boot的核心思想:习惯优于配置

可以快速创建开发基于spring框架的项目.或者支持可以不用或很少的spring配置即可.

22.springboot的核心功能与使用优点.

核心功能:

  • 1.1: springboot项目为独立运行的spring项目,java -jar xx.jar即可运行.
  • 1.2: 内嵌servlet容器(可以选择内嵌: tomcat ,jetty等服务器.).
  • 1.3: 提供了starter的pom 配置 简化了maven的配置.
  • 1.4: 自动配置spring容器中的bean.当不满足实际开发场景,可自定义bean的自动化配置.
  • 1.5: 准生产的应用监控(基于: ssh , http , telnet 对服务器运行的项目进行监控.).
  • 1.6: springboot无需做出xml配置,也不是通过代码生成来实现(通过条件注解)
    使用优点:
  • 1.快速搭建项目,
  • 2,与主流框架集成无需配置集成.
  • 3.内嵌服务容器.
  • 4.具有应用监控.
  • 5.开发部署方便,后期与云计算平台集成方便

23.springboot中的application.properties配置文件是什么,有哪些配置.

application.properties为boot项目中的一个系统自带的全局属性配置文件. 提供默认属性重写的作用. 可包含重写系tomcat,spring,springmvc,mybatis等诸多默认配置属性: 列举部分如下:

#全局配置文件: 重写视图解析器的资源地址.
#页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
#?响应页面默认后缀
spring.mvc.view.suffix=.jsp
#静态资源目录配置,
spring.mvc.static-path-pattern=/static/**
#tomcat服务器的配置:
server.port=8081
server.servlet.context-path=/sb2
#默认支持的日志记录:
#logging.config=classpath:logback.xml 加载单独的日志配置文件.
logging.file=d:/test/log.log
logging.level.org.springframework.web=DEBUG
#提供jdbc的基本配置:
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/c01?useUnicode=true&characterEncoding=utf-8
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.type=org.apache.commons.dbcp.BasicDataSource
#提供mybatis的属性配置: 扫描.
mybatis.mapper-locations=classpath:mapper/*_mapper.xml

24.springboot中常用的starter的组件有哪些.

学习尚硅谷视频整理的文档 Spring Boot 1 1 Spring Boot入门 4 1.1 简介 4 1.2 微服务(martin fowler发表了一篇文章) 5 1.3 环境约束 7 1.4 第一个Spring Boot项目(jar):HelloWorld 8 1.5 入门案例详解 11 1.5.1 POM文件 11 1.5.2 主程序类,主入口类 12 1.6 使用Spring Initializer向导快速创建Spring Boot 16 2 Spring Boot配置 18 2.1 配置文件 18 2.2 YML语法 19 2.3 YML配置文件值获取 21 2.4 properties配置文件乱码问题 24 2.5 @ConfigurationProperties与@Value的区别 25 2.6 配置@PropertySource、@ImportResource、@Bean 27 2.7 配置文件占位符 30 2.8 Profile多环境支持 31 2.9 配置文件的加载位置 33 2.10 外部配置加载顺序 36 2.11 自动配置原理 37 2.12 @Conditional派生注解 41 3 Spring Boot与日志 42 3.1 日志框架分类和选择 42 3.2 SLF4j使用 43 3.3 其他日志框架统一转换成slf4j+logback 44 3.4 Spring Boot日志使用 45 3.5 Spring Boot默认配置 47 3.6 指定日志文件和日志Profile功能 52 3.7 切换日志框架(不使用SLF4j+LogBack) 54 4 Spring Boot与Web开发 55 4.1 Web开发简介 55 4.2 静态资源映射规则 56 4.3 引入Thymeleaf 60 4.4 Thymeleaf语法 61 4.5 SpringMVC自动配置原理 67 4.6 SpringBoot扩展与全面接管 70 4.7 如何修改SpringBoot的默认配置 72 4.8 【实验】CRUD操作 73 4.8.1 默认访问首页 73 4.8.2 登录页面国际化 74 4.8.3 登录 80 4.8.4 拦截器进行登录检查 81 4.8.5 实验要求(没按要求做,不想改了!) 82 4.8.6 CRUD-员工列表 83 4.8.7 CRUD-员工修改 86 4.8.8 CRUD-员工添加 87 4.8.9 CRUD-员工删除 88 4.9 错误处理原理&错误页面定制 90 4.10 配置嵌入式Servlet容器(springboot 1.50版本) 97 4.10.1 如何定制和修改Servelt容器的相关配置 97 4.10.2 注册servlet三大组件【servlet,filter,listener】 98 4.10.3 替换为其他嵌入式容器 102 4.10.4 嵌入式servlet容器自动配置原理 103 4.10.5 嵌入式servlet容器启动原理 103 4.11 使用外置的Servlet容器 104 4.11.1 步骤 104 4.11.2 原理 107 5 Spring Boot与Docker(虚拟化容器技术) 110 5.1 简介 110 5.2 核心概念 111 5.3 安装Docker 112 5.4 Docker常用命令&操作 113 5.5 安装MySQL示例 114 6 Spring Boot与数据访问 115 6.1 JDBC 115 6.1.1 实现 115 6.1.2 自动配置原理 116 6.2 整合Durid数据源 117 6.3 整合Mybatis 122 6.3.1 注解版 123 6.3.2 配置文件版 124 6.4 整合SpringData JPA 125 6.4.1 SpringData简介 125 6.4.2 整合 126 7 Spring Boot启动配置原理 128 7.1 启动流程(Springboot 1.50版本) 128 7.1.1 创建SpringApplication对象 129 7.1.2 运行run方法 130 7.1.3 编写事件监听机制 132 8 Spring Boot定义starters 136 8.1 概述 136 8.2 步骤 137 9 更多Springboot整合示例 144 10 Spring Boot与缓存 145 10.1 JSR107缓存规范 145 10.2 Spring的缓存抽象 146 10.2.1 基本概念 146 10.2.2 整合项目 146 10.2.3 CacheEnable注解 148 10.2.4 Cache注解 150 10.3 整合redis 154 10.3.1 在Docker上安装redis 154 10.3.2 Redis的Template 154 10.3.3 整合(百度) 155
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值