springboot-总结列表

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了springboot-总结列表脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、Spring Boot 具有以下特点:

1. 独立运行的 Spring 项目

Spring Boot 可以以 jar 包的形式独立运行,Spring Boot 项目只需通过命令“ java–jar xx.jar” 即可运行。

2. 内嵌 Servlet 容器

Spring Boot 使用嵌入式的 Servlet 容器(例如 Tomcat、Jetty 或者 Undertow 等),应用无需打成 WAR 包 。

3. 提供 starter 简化 Maven 配置

Spring Boot 提供了一系列的“starter”项目对象模型(POMS)来简化 Maven 配置。

4. 提供了大量的自动配置

Spring Boot 提供了大量的默认自动配置,来简化项目的开发,开发人员也通过配置文件修改默认配置。

5. 自带应用监控

Spring Boot 可以对正在运行的项目提供监控。

6. 无代码生成和 xml 配置

Spring Boot 不需要任何 xml 配置即可实现 Spring 的所有配置。Spring Boot 提供了大量开箱即用(out-of-the-box)的依赖模块
 
 二、 Intellij IDEA 一般可以通过两种方式创建 Spring Boot 项目:
  • 使用 Maven 创建
  • 使用 Spring Initializr 创建

三、pom.xml 配置中其版本(version)

版本信息是由 spring-boot-starter-parent(版本仲裁中心) 统一控制的,查看 spring-boot-starter- parent 的底层代码,可以发现其有一个父级依赖 spring-boot-dependencies

Spring Boot 项目可以通过继承 spring-boot-starter-parent 来获得一些合理的默认配置,它主要提供了以下特性:

  • 默认 JDK 版本(Java 8)
  • 默认字符集(UTF-8)
  • 依赖管理功能
  • 资源过滤
  • 默认插件配置
  • 识别 application.properties 和 application.yml 类型的配置文件

mvn dependency:tree

四、YAML教程

SpringBoot 默认使用以下 2 种全局的配置文件,其文件名是固定的。

    • application.properties
    • application.yml

YAML 的语法如下:

  • 使用缩进表示层级关系。
  • 缩进时不允许使用 Tab 键,只允许使用空格。
  • 缩进的空格数不重要,但同级元素必须左侧对齐。
  • 大小写敏感。

YAML 支持以下三种数据结构:

  • 对象:键值对的集合
  • 数组:一组按次序排列的值
  • 字面量:单个的、不可拆分的值

五、配置绑定 

SpringBoot 提供了以下 2 种方式进行配置绑定:

  • 使用 @ConfigurationProperties 注解
  • 使用 @Value 注解

@PropertySource 

  1. @PropertySource(value = "classpath:person.properties")//指向对应的配置文件

@Value 与 @ConfigurationProperties 对比

@Value 和 @ConfigurationProperties 注解都能读取配置文件中的属性值并绑定到 JavaBean 中,但两者存在以下不同。

1. 使用位置不同

  • @ConfigurationProperties:标注在 JavaBean 的类名上;
  • @Value:标注在 JavaBean 的属性上。

2. 功能不同

  • @ConfigurationProperties:用于批量绑定配置文件中的配置;
  • @Value:只能一个一个的指定需要绑定的配置。

3. 松散绑定支持不同

@ConfigurationProperties:支持松散绑定(松散语法),例如实体类 Person 中有一个属性为 firstName,那么配置文件中的属性名支持以下写法:

  • person.firstName
  • person.first-name
  • person.first_name
  • PERSON_FIRST_NAME 

@Vaule:不支持松散绑定。

4. SpEL 支持不同

  • @ConfigurationProperties:不支持 SpEL 表达式;
  • @Value:支持 SpEL 表达式。

5. 复杂类型封装

  • @ConfigurationProperties:支持所有类型数据的封装,例如 Map、List、Set、以及对象等;
  • @Value:只支持基本数据类型的封装,例如字符串、布尔值、整数等类型。

6. 应用场景不同

@Value 和 @ConfigurationProperties 两个注解之间,并没有明显的优劣之分,它们只是适合的应用场景不同而已。

    • 若只是获取配置文件中的某项值,则推荐使用 @Value 注解;
    • 若专门编写了一个 JavaBean 来和配置文件进行映射,则建议使用 @ConfigurationProperties 注解。

六、导入Spring配置

Spring Boot 为了我们提供了以下 2 种方式来导入 Spring 配置:

  • 使用 @ImportResource 注解加载 Spring 配置文件
  • 使用全注解方式加载 Spring 配置

@ImportResource(locations = {"classpath:/beans.xml"})

Spring Boot 推荐我们使用全注解的方式加载 Spring 配置,其实现方式如下:

    1. 使用 @Configuration 注解定义配置类,替换 Spring 的配置文件;
    2. 配置类内部可以包含有一个或多个被 @Bean 注解的方法,这些方法会被 AnnotationConfigApplicationContext 或 AnnotationConfigWebApplicationContext 类扫描,构建 bean 定义(相当于 Spring 配置文件中的<bean></bean>标签),方法的返回值会以组件的形式添加到容器中,组件的 id 就是方法名。

@Configurationpublic class MyAppConfig { /** * 与 <bean id="personService" class="PersonServiceImpl"></bean> 等价 * 该方法返回值以组件的形式添加到容器中 * 方法名是组件 id(相当于 <bean> 标签的属性 id) */ @Bean public PersonService personService() { System.out.println("在容器中添加了一个组件:peronService"); return new PersonServiceImpl(); }}

七、Spring Boot Profile(多环境配置)

properties 配置

在 helloworld 的 src/main/resources 下添加 4 个配置文件:

  • application.properties:主配置文件
  • application-dev.properties:开发环境配置文件
  • application-test.properties:测试环境配置文件
  • application-prod.properties:生产环境配置文件

在 application.properties 文件中,指定默认服务器端口号为 8080,并通过以下配置激活生产环境(prod)的 profile。#默认端口号server.port=8080#激活指定的profilespring.profiles.active=prod

yml 配置与 properties 文件类似,我们也可以添加 4 个配置文件:application.yml:默认配置application-dev.yml:开发环境配置application-test.yml:测试环境配置application-prod.yml:生产环境配置

在 applcation.yml 文件中指定默认服务端口号为 8080,并通过以下配置来激活开发环境的 profile。纯文本复制#默认配置server: port: 8080#切换配置spring: profiles: active: dev #激活开发环境配置

八、Spring Boot 配置加载顺序

所有位置的文件都会被加载,高优先级配置会覆盖低优先级配置,形成互补配置,即:

  • 存在相同的配置内容时,高优先级的内容会覆盖低优先级的内容;
  • 存在不同的配置内容时,高优先级和低优先级的配置内容取并集。

以下是常用的 Spring Boot 配置形式及其加载顺序(优先级由高到低):命令行参数来自 java:comp/env 的 JNDI 属性Java 系统属性(System.getProperties())操作系统环境变量RandomValuePropertySource 配置的 random.* 属性值配置文件(YAML 文件、Properties 文件)@Configuration 注解类上的 @PropertySource 指定的配置文件通过 SpringApplication.setDefaultProperties 指定的默认属性

九、Spring Boot自动配置原理

Spring Factories 机制Spring Boot 的自动配置是基于 Spring Factories 机制实现的。Spring Factories 机制是 Spring Boot 中的一种服务发现机制,这种扩展机制与 Java SPI 机制十分相似。Spring Boot 会自动扫描所有 Jar 包类路径下 META-INF/spring.factories 文件,并读取其中的内容,进行实例化,这种机制也是 Spring Boot Starter 的基础。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1、自定义 starter 

可以分为以下 7 步:

  1. 创建工程
  2. 添加 POM 依赖
  3. 定义 propertie 类
  4. 定义 Service 类
  5. 定义配置类
  6. 创建 spring.factories文件
  7. 构建 starter

2、

 

脚本宝典总结

以上是脚本宝典为你收集整理的springboot-总结列表全部内容,希望文章能够帮你解决springboot-总结列表所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: