创建SpringBoot工程
-
创建普通Maven工程
-
继承spring-boot-starter-parent
-
添加依赖spring-boot-starter-web
-
制作引导类Application
最简SpringBoot程序所包含的基础文件
- pom.xml文件
- Application类
这两个文件是一个最简单的Spring Boot程序所必需的基础文件,`pom.xml` 文件定义了项目的依赖和构建配置,`Application` 类则是应用的入口点,用于启动Spring Boot应用。
隐藏指定文件或指定类型的文件:
1. 打开 IntelliJ IDEA。
2. 转到菜单栏的 `File` -> `Settings`(或者直接使用快捷键 `Ctrl + Alt + S`)。
3. 在弹出的窗口中,选择 `Editor` -> `File Types`。
4. 在 `File Types` 下找到 `Ignored Files and Folders`。
5. 在右侧的文本框中输入要隐藏的文件名,支持使用 `*` 通配符来匹配多个文件。比如,如果要隐藏所有以 `.txt` 结尾的文件,可以输入 `*.txt`。
6. 输入完毕后,按回车键确认添加。
7. 点击 `Apply` 和 `OK` 保存设置并关闭窗口。
Spring Boot 优点
1. 起步依赖(Starter Dependencies)**:
- Spring Boot 提供了大量的起步依赖,这些依赖项预先配置了常用的库和框架,使得开发人员可以轻松地将这些依赖项添加到项目中,而无需手动配置。
- 起步依赖简化了依赖管理,帮助开发人员快速搭建项目,减少了配置的复杂性。
2. 自动配置(Auto-Configuration)**:
- Spring Boot 基于约定大于配置的原则,通过自动配置机制根据项目的依赖和环境自动配置应用程序。
- 自动配置减少了开发人员的工作量,提高了开发效率,并且可以减少错误配置的可能性。
3. 辅助功能(Actuator、内置服务器等):
- Spring Boot 提供了许多辅助功能,如 Actuator(监控和管理应用程序)、内置的 Web 服务器(如 Tomcat、Jetty)、健康检查、指标收集等。
- 这些辅助功能使得开发人员可以更轻松地监控和管理应用程序,并且可以帮助开发人员更好地了解应用程序的运行状态。
4. 集成简单:
- Spring Boot 简化了对各种第三方库和框架的集成,通过起步依赖和自动配置,可以很容易地集成其他技术栈,如数据库、消息队列、安全框架等。
5.微服务支持:
- Spring Boot 很好地支持构建微服务架构,通过 Spring Cloud 提供的组件,可以快速搭建和管理微服务应用。
6. 生态系统丰富:
- Spring Boot 作为 Spring Framework 的一部分,受益于 Spring 生态系统的支持,拥有庞大的社区和丰富的文档资源,开发者可以轻松获取支持和解决问题。
spring-boot-starter-parent
- 在开发 Spring Boot 应用程序时,通常会继承 `spring-boot-starter-parent` 父项目,以便从该父项目中继承一些默认配置和依赖管理。
- 这样做可以简化项目的配置管理,提供默认的构建插件和依赖管理,使得开发者可以专注于应用程序的业务逻辑而不是配置细节。
2. `spring-boot-starter-parent`中的依赖管理:
- `spring-boot-starter-parent` 中定义了许多常用依赖的版本,包括 Spring Boot 自身的依赖、Spring Framework、各种第三方库等。
- 这样一来,开发者在开发应用程序时可以更容易地管理这些依赖的版本,避免版本冲突和不一致性。
3. 避免依赖版本冲突:
- 继承 `spring-boot-starter-parent` 可以帮助避免多个依赖使用相同技术时出现依赖版本冲突的情况。通过统一管理依赖的版本,可以确保整个项目使用的依赖版本一致性。
4. 引入依赖的形式:
- 除了继承 `spring-boot-starter-parent` 外,还可以通过直接引入 Spring Boot Starter 依赖来实现相同的效果。这种方式下,开发者需要手动管理依赖的版本,但也可以避免版本冲突问题。
总的来说,继承 `spring-boot-starter-parent` 是一种常见的做法,可以简化项目配置和依赖管理,确保项目的稳定性和一致性。开发者可以根据具体情况选择适合自己项目的依赖管理方式。
Starter 和 Parent
1. Starter:
- Starter 是 Spring Boot 提供的一种依赖模式,它打包了一组常用的依赖项,可以一次性引入到项目中,从而简化了依赖配置的书写量。
- 通过引入 Starter,开发者可以快速地集成常用的功能,如数据库访问、Web 开发、安全认证等,而不必手动配置每个依赖项。
2. Parent:
- Parent 是指 Spring Boot 提供的父项目,如 `spring-boot-starter-parent`,它定义了大量依赖的版本号,使得开发者无需手动控制每个依赖的版本,而是统一由 Spring Boot 管理。
- 通过继承 Spring Boot 的 Parent 项目,开发者可以避免依赖版本冲突的问题,因为所有依赖的版本都是经过测试和兼容性验证的。
综合来看,Starter 和 Parent 是 Spring Boot 中用来简化依赖配置和管理的重要机制。Starter 提供了一种简单的方式来引入一组相关的依赖,而 Parent 则统一管理了各个依赖的版本,避免了版本冲突的情况,从而提高了开发效率和项目的稳定性。这两种机制结合起来,使得开发者可以更专注于业务逻辑的开发,而不必过多关注依赖管理的细节。
starter是一个坐标中定了若干个坐标,以前写多个的,现在写一个,是用来减少依赖配置的书写量的
parent是定义了几百个依赖版本号,以前写依赖需要自己手工控制版本,现在由SpringBoot统一管理,这样就不存在版本冲突了,是用来减少依赖冲突的
引导类
1. 引导类(Bootstrap Class)**:
- 在 Spring Boot 项目中,通常会有一个引导类(Bootstrap Class),这个类包含了 `main` 方法,用来启动整个程序。
- 在这个引导类中,通常会使用 `SpringApplication.run(Application.class, args)` 方法来启动 Spring Boot 应用程序。
2. Spring 容器的创建和初始化:
- 当 Spring Boot 应用程序启动时,会创建并初始化 Spring 容器(Application Context)。
- Spring 容器负责管理应用程序中的所有 Bean 对象,包括控制反转(IoC)和依赖注入等功能。
- Spring Boot 使用自动配置(Auto-Configuration)的机制来配置 Spring 容器,根据项目的依赖和配置来决定哪些 Bean 需要被创建和初始化。
总的来说,Spring Boot 通过引导类启动程序,并在启动过程中创建和初始化 Spring 容器。Spring 容器是整个应用程序的核心,负责管理各个组件的生命周期和依赖关系,而 Spring Boot 简化了这一过程,使得开发者可以更快速地构建和部署应用程序。
内嵌 Tomcat
1. **启动过程**:
- 当应用程序启动时,内嵌 Tomcat 会在应用程序的进程中启动一个 Tomcat 服务器实例。
- 应用程序会创建一个嵌入式的 Tomcat 容器,并配置该容器的相关参数,如端口号、上下文路径等。
2. **Servlet 容器**:
- Tomcat 是一个 Servlet 容器,它实现了 Servlet 规范并提供了 HTTP 服务能力。
- 内嵌 Tomcat 将应用程序打包成一个可执行的 JAR 文件,该 JAR 文件包含了应用程序的代码以及嵌入式 Tomcat 服务器。
3. **DispatcherServlet**:
- 在 Spring MVC 应用程序中,通常会有一个 DispatcherServlet 用来处理请求的分发和控制器的调度。
- 内嵌 Tomcat 会加载 Spring 的 DispatcherServlet,并将其注册到内嵌的 Tomcat 容器中,从而实现请求的处理和响应。
4. **整合**:
- 内嵌 Tomcat 的整合通常是通过 Maven 或 Gradle 插件来实现的,开发者只需要在项目配置文件中添加相应的依赖和插件配置即可。
- 在打包应用程序时,可以将嵌入式 Tomcat 和应用程序代码一起打包成一个可执行的 JAR 文件,方便部署和运行。
总的来说,内嵌 Tomcat 的原理是将 Tomcat 服务器嵌入到应用程序中,实现了应用程序与服务器的集成,简化了部署和运行的流程。这种方式适用于一些简单的应用程序或者需要独立部署的微服务,提高了开发和部署的效率。
application.properties
1. SpringBoot程序可以在application.properties文件中进行属性配置
2. application.properties文件中只要输入要配置的属性关键字就可以根据提示进行设置
3. SpringBoot将配置信息集中在一个文件中写,不管你是服务器的配置,还是数据库的配置,总之都写在一起,逃离一个项目十几种配置文件格式的尴尬局面
-
SpringBoot中导入对应starter后,提供对应配置属性
-
书写SpringBoot配置采用关键字+提示形式书写
加载优先级
配置文件间的加载优先级 properties(最高)> yml > yaml(最低)
2. 不同配置文件中相同配置按照加载优先级相互覆盖,不同配置文件中不同配置全部保留
自动提示功能消失解决方案
在 IntelliJ IDEA 中指定 Spring Boot 配置文件的步骤如下:
1. 打开 IntelliJ IDEA,进入菜单栏中的 **Setting**(设置)。
2. 选择 **Project Structure**(项目结构)。
3. 在左侧栏中,选择 **Facets**。
4. 选中你的项目或工程。
5. 在右侧面板中,找到 **Customize Spring Boot**(自定义 Spring Boot)选项。
6. 在 **Customize Spring Boot** 下,可以选择指定的配置文件,通常是 `application.properties` 或 `application.yml`。
通过上述步骤,你可以在 IntelliJ IDEA 中指定 Spring Boot 项目使用的配置文件,确保应用程序能够正确加载和应用配置信息。
YAML的语法规则
1. **YAML 语法规则**:
- YAML 是大小写敏感的语言。
- 属性层级关系使用多行描述,每行结尾使用冒号结束。
- 使用缩进表示层级关系,同层级左侧对齐,只允许使用空格(不允许使用 Tab 键)。
- 属性值前面添加空格,属性名与属性值之间使用冒号和空格作为分隔符。
- 使用 `#` 表示注释,注释可以出现在行的任何位置。
2. **属性名冒号后面与数据之间有一个空格**:
- 在 YAML 中,属性名后面的冒号后面应该跟一个空格,然后才是属性值。这样的格式是为了保证文件的可读性和一致性。
3. **字面值、对象数据格式、数组数据格式**:
- 字面值:可以直接写入字符串、数字等,不需要特殊标记。
yaml数据读取
1. 使用 `Environment` 对象封装全部配置信息,并通过 `@Autowired` 自动装配数据到 `Environment` 对象中。
2. 在配置文件中可以使用 `${属性名}` 的方式引用属性值,如果属性中出现特殊字符,可以使用双引号包裹起来作为字符解析。
3. 使用 `@ConfigurationProperties` 注解将配置信息绑定到封装类中,确保封装类被定义为 Spring 管理的 Bean,以便进行属性注入。