SpringBoot-记

目录

SpringBoot是什么

Spring Boot 优点

Spring Boot 的核心注解

运行Spring Boot的方式

SpringBoot 实现热部署的方式

SpringBoot的配置加载顺序

Spring Boot 的核心配置文件


SpringBoot是什么

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

Spring Boot 优点

一、独立运行

Spring Boot内嵌了各种servlet容器,Tomcat、Jetty等,现在不再需要打成war包部署到容器中,Spring Boot只要打成一个可执行的jar包就能独立运行,所有的依赖包都在一个jar包内。

二、简化配置

spring-boot-starter-web启动器自动依赖其他组件,简化了maven的配置。

三、自动配置

Spring Boot能根据当前类路径下的类、jar包来自动配置bean,如添加一个spring-boot-starter

web启动器就能拥有web的功能,无需其他配置。

四、无代码生成和XML配置

Spring Boot配置过程中无代码生成,也无需XML配置文件就能完成所有配置工作,这一切都是借助 于条件注解完成的,这也是Spring4.x的核心功能之一。

五、应用监控

Spring Boot提供一系列端点可以监控服务及应用,做健康检测。

Spring Boot 的核心注解

启动类上面的注解是@SpringBootApplication,是一个复合注解,它也是 Spring Boot 的核心注解,包含三个子注解:

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

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

})。

@ComponentScan:Spring组件扫描

运行Spring Boot的方式

  1. 打包成Jar或War文件。使用Maven或Gradle构建工具将Spring Boot项目打包为Jar或War文件。打包完成后,可以通过java -jar命令运行Jar文件,或者将War文件部署到外部Servlet容器(如Tomcat、Jetty)中。
  2. 使用IDE中的Run按钮。在Eclipse、IntelliJ IDEA等IDE中,可以直接运行Spring Boot应用。这种方式适用于开发和测试环境。
  3. 使用Maven插件。在项目的pom.xml文件中配置spring-boot-maven-plugin插件,然后使用mvn spring-boot:run命令来运行Spring Boot应用。这种方式支持热部署和集成其他插件功能。
  4. 使用Gradle插件。在项目的build.gradle文件中配置spring-boot-gradle-plugin插件,然后使用gradle bootRun命令来运行Spring Boot应用。
  5. 使用Docker容器。可以将Spring Boot项目打包为Docker镜像,并运行在Docker容器中。这种方式适用于需要频繁部署和测试的场景。

简单:

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

SpringBoot 实现热部署的方式

主要有两种方式:

  • Spring Loaded
  • Spring-boot-devtools
  1. Spring Loaded此种方式与Debug模式类似,适用范围有限,但是不依赖于Debug模式启动,通过Spring Loaded库文件启动,即可在正常模式下进行实时热部署。此种需要在 run confrgration 中进行配置。
  1. 在 Spring Boot 项目中添加 spring-boot-devtools依赖即可实现页面和代码的热部署。
<dependency>
  <groupId>org.springframework.boot</groupId>
  <artifactId>spring-boot-devtools</artifactId>
</dependency>

此种方式的特点是作用范围广,系统的任何变动包括配置文件修改、方法名称变化都能覆盖,但是后遗症也非常明显,它是采用文件变化后重启的策略来实现了,主要是节省了我们手动点击重启的时间,提高了实效性,在体验上回稍差。spring-boot-devtools 默认关闭了模版缓存,如果使用这种方式不用单独配置关闭模版缓存。

SpringBoot的配置加载顺序

  1. 命令行参数:通过命令行传递的参数会覆盖其他配置,具有最高的优先级。例如,`java -jar --server.port=8888` 会设置服务器端口为8888。
  2. 外部配置文件:SpringBoot会自动加载jar包内部及jar包所在目录指定位置的配置文件。默认情况下,优先加载`application.yml`文件,其次加载`application.properties`文件。可以通过`spring.config.location`指定默认配置文件的位置。
  3. 系统属性:Java系统属性`System.getProperties()`中的配置具有较低的优先级。
  4. 环境变量:操作系统的环境变量中的配置也具有较低的优先级。
  5. RandomValuePropertySource:配置的`random.*`属性值具有较低的优先级。
  6. @PropertySource注解:通过`@Configuration`注解类上的`@PropertySource`指定的配置文件具有较低的优先级。
  7. SpringApplication.setDefaultProperties():通过`SpringApplication.setDefaultProperties()`指定的默认属性具有较低的优先级。

Spring Boot 的核心配置文件

Spring Boot 的核心配置文件是 application 和 bootstrap 配置文件。

application 配置文件主要用于 Spring Boot 项目的自动化配置。

bootstrap 配置文件有以下几个应用场景。

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


近日总结:心情有些小郁闷,后端行情真不如前端啊!

相关推荐

  1. SpringBoot 使用@RequestBody 接收不到参数

    2024-03-26 04:32:05       19 阅读
  2. MySQL-<span style='color:red;'>记</span>

    MySQL-

    2024-03-26 04:32:05      20 阅读
  3. Nginx-<span style='color:red;'>记</span>

    Nginx-

    2024-03-26 04:32:05      14 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-26 04:32:05       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-26 04:32:05       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-26 04:32:05       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-26 04:32:05       20 阅读

热门阅读

  1. Redis 缓存穿透是什么?如何缓解缓存穿透?

    2024-03-26 04:32:05       16 阅读
  2. C#手动改变自制窗体的大小

    2024-03-26 04:32:05       15 阅读
  3. 【课程】MyBatisPlus视频教程

    2024-03-26 04:32:05       23 阅读
  4. c语音函数大全(S开头)

    2024-03-26 04:32:05       20 阅读
  5. ARM IHI0069F GIC architecture specification (3)

    2024-03-26 04:32:05       19 阅读
  6. Microsoft Visio 快捷键 (keyboard shortcut - hotkey)

    2024-03-26 04:32:05       18 阅读
  7. SQLserver提权

    2024-03-26 04:32:05       18 阅读
  8. 绘制虚线圆角矩形的Flutter小部件

    2024-03-26 04:32:05       20 阅读
  9. 5.81 BCC工具之tcpconnlat.py解读

    2024-03-26 04:32:05       36 阅读