SpringBoot 框架学习

java 学习笔记指路

基础知识

Python转java补充知识
Java中常见的名词解释

前端

【黑马程序员pink老师前端】HTML
【黑马程序员pink老师前端】JavaScript基础大总结
【黑马程序员pink老师前端】JavaScript函数与作用域
【黑马程序员pink老师前端】JavaScript对象

数据库

【黑马程序员数据库】数据库基础大总结
【黑马程序员数据库】数据库引擎
【黑马程序员数据库】数据库索引

SQL编程

【牛客】SQL刷题篇入门篇
【牛客】SQL刷题篇进阶篇

Java 框架

spring框架学习
SpringMvc框架学习
SpringBoot 框架学习
Mybatis-plus 快速入门
Maven基础
Zookeeper初认识
HTTP简介
Tomcat
Servlet
vue入门

目录

  • [0. 名词解释](#0. 名词解释)
  • [1. 配置文件](#1. 配置文件)
    • [1.1 springboot 支持的配置文件](#1.1 springboot 支持的配置文件)
    • [1.2 application.properties和application.yml文件的区别:](#1.2 application.properties和application.yml文件的区别:)
    • [1.3 yml 语法:](#1.3 yml 语法:)
    • [1.4 配置文件注入](#1.4 配置文件注入)
  • [2. 日志系统](#2. 日志系统)
  • [3. 属性配置](#3. 属性配置)
  • [4. Swagger](#4. Swagger)
    • [4.1 作用](#4.1 作用)
    • [4.2 使用](#4.2 使用)

参考大佬文章

0. 名词解释

属性:

属性是指一个对象或组件中的某些特征或状态。在Spring Boot中,属性通常用于配置应用程序中的各种组件和服务。属性可以通过配置文件、命令行参数、Java代码等方式进行设置,从而使应用程序能够根据不同的环境和需求进行配置。

使用配置文件来配置属性的情况:

  • 需要在不同的环境中使用不同的配置时。例如,您可以在开发环境中使用一组属性,在测试环境中使用另一组属性,在生产环境中使用另一组属性。
  • 需要将配置信息从代码中分离出来时。使用配置文件可以使配置信息更加灵活和可维护,因为您可以在配置文件中更改配置信息,而不需要修改代码。
    组件: 是指应用程序中的一个独立的可重用的功能单元。组件可以是一个Java类、一个接口、一个注解等,它们通常用于实现特定的功能,例如处理请求、处理数据、执行业务逻辑等。
    依赖关系: 依赖关系是指一个组件或模块依赖于另一个组件或模块的关系
    依赖注入: spring 提供的,@Autowired 注解来注入,会自动装载import,同 python 中的 import

1. 配置文件

1.1 springboot 支持的配置文件

  1. application.yml或application.yaml:这是Spring Boot的默认配置文件格式,它使用YAML语法来表示配置信息。与application.properties文件类似,可以在该文件中配置各种属性。application.properties或application.yml文件中的属性可以通过**@Value**注解直接注入到Java类中(把配置文件中的值赋给变量),这样可以方便地将配置信息传递给应用程序的各个组件。
  2. application-dev.properties或application-dev.yml:用于配置Spring Boot应用程序的开发环境属性。例如,可以在这些文件中配置日志级别、端口号等。
  3. application-test.properties 或 application-test.yml:用于配置Spring Boot应用程序的测试环境属性。例如,您可以在这些文件中配置测试数据库连接等。
  4. spring.factories :用于配置 Spring Boot 应用程序中的组件和依赖关系。Spring Boot 会自动扫描该文件,并将其中的组件和依赖项注入到应用程序中。例如,如果需要在应用程序中添加一个新的组件或依赖项,您只需要在spring.factories文件中添加一行新的键值对即可。这样,Spring Boot会自动扫描该文件,并将新的组件或依赖项注入到应用程序中,无需修改应用程序的源代码。通常用于配置Spring Boot应用程序中的第三方库和框架,例如Spring Data JPA、Spring Security等。这些库和框架通常需要在应用程序中进行配置,通常使用 spring.factories。

执行顺序

Spring Boot应用程序会按照以下顺序加载配置文件:

  1. application.properties或application.yml文件:默认配置文件
  2. application-{profile}.properties、application-{profile}.yml 或 application-{profile}.yaml文件:{profile}表示您的应用程序所使用的特定环境,例如开发环境、测试环境、生产环境等。
  3. spring.factories文件:配置Spring Boot应用程序中的组件和依赖关系。对于在maven中引用的其他外部包加入容器的过程,需要用到spring.factories。
    如果属性在多个配置文件中都存在,则使用最后一个配置文件中的属性值。

1.2 application.properties和application.yml文件的区别:

IDEA创建一个SpringBoot项目时会默认创建一个application.properties配置文件。有些朋友习惯把.properties文件改成.yml文件。
1. 内容格式比较:
.properties文件,通过.来连接,通过=来赋值,结构上,没有分层的感觉,但比较直接。

java 复制代码
server.port=8081
spring.datasource.type=org.apache.tomcat.jdbc.pool.DataSource
spring.datasource.url=jdbc:mysql://aliyuncs.com:3306/database?useUnicode=true&zeroDateTimeBehavior=convertToNull&autoReconnect=true
spring.datasource.username=root
spring.datasource.password=******
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

.yml文件,通过:来分层,结构上,有比较明显的层次感,最后key赋值的:后需要留一个空格

yml 复制代码
server:
  port: 8082
spring:
    datasource:
        name: test
        url: jdbc:mysql://127.0.0.1:3306/database
        username: root
        password: ******
        type: com.alibaba.druid.pool.DruidDataSource
        driver-class-name: com.mysql.jdbc.Driver

2. 执行顺序

配置文件的加载优先级 properties(最高)>yml>yaml(最低),如果工程中同时存在application.properties文件和 application.yml文件,yml文件会先加载,而后加载的properties文件会覆盖yml文件。

1.3 yml 语法:

yml 复制代码
## 基本格式
server:
    port: 8080
## 值的写法格式
user:
    name: zhangsan
    age: 20
## 或者采用行内写法
user: {name: zhangsan,age: 20}
## 数组写法
pets:
 - cat
 - dog
 - pig
## 或者采用行内写法
pets: [cat,dog,pig]

k: v 表示键值对关系,冒号后面必须有一个空格

使用空格的缩进表示层级关系,空格数目不重要,只要是左对齐的一列数据,都在同一个层级

大小写敏感

缩进时不允许使用Tab键,只允许使用空格

支持松散绑定。Java中对于驼峰命名法,可使用原名或-代替驼峰,如:lastName属性,在yml文件中使用lastName或last-name都可以正确映射

注意:" ":双引号,会转译字符串里的特殊字符:如 /n 会被转译成换行;'':单引号,不会转译: 如 /n 输出就是 /n

1.4 配置文件注入

2. 日志系统

springboot项目的最佳实践就是采用 slf4j+logback

详细的写在日志整改文章里

3. 属性配置

4. Swagger

4.1 作用

按照它的规范去定义接口及接口相关的信息,自动生成接口文档

4.2 使用

相关推荐
狂放不羁霸8 分钟前
idea | 搭建 SpringBoot 项目之配置 Maven
spring boot·maven·intellij-idea
九圣残炎9 分钟前
【从零开始的LeetCode-算法】1456. 定长子串中元音的最大数目
java·算法·leetcode
wclass-zhengge12 分钟前
Netty篇(入门编程)
java·linux·服务器
成富31 分钟前
文本转SQL(Text-to-SQL),场景介绍与 Spring AI 实现
数据库·人工智能·sql·spring·oracle
计算机学长felix36 分钟前
基于SpringBoot的“校园交友网站”的设计与实现(源码+数据库+文档+PPT)
数据库·spring boot·毕业设计·交友
Re.不晚39 分钟前
Java入门15——抽象类
java·开发语言·学习·算法·intellij-idea
雷神乐乐1 小时前
Maven学习——创建Maven的Java和Web工程,并运行在Tomcat上
java·maven
码农派大星。1 小时前
Spring Boot 配置文件
java·spring boot·后端
顾北川_野1 小时前
Android 手机设备的OEM-unlock解锁 和 adb push文件
android·java
江深竹静,一苇以航1 小时前
springboot3项目整合Mybatis-plus启动项目报错:Invalid bean definition with name ‘xxxMapper‘
java·spring boot