本篇摘要

上一篇文章,我们构建了一个HelloWorld的程序,现在,我们来看一下这个程序,下面是我们这一节要分析的点。

  1. spring-boot-starter-boot
  2. @SpringBootApplication
  3. 热加载

spring-boot-starter-boot

我们这个程序是使用maven进行构建的,我们去看pom.xml文件可以发现它继承自这个pom,这是Maven的一个独有的部件,它有啥用呢?

Spring Boot 2.x (二):How Hello World & 热部署

  • Java 1.8作为默认的编译器级别。
  • UTF - 8编码。

Spring Boot 2.x (二):How Hello World & 热部署

  • 一个继承自spring-boot-dependencies pom的依赖管理部分,管理通用依赖项的版本。这个依赖项管理可以在自己的pom中使用这些依赖项时省略< version>标记。

Spring Boot 2.x (二):How Hello World & 热部署

  • 合理的插件配置(exec插件,git commit id和shade等等,这里不再多说,希望深入了解的可以寄几去看一下????)

Spring Boot 2.x (二):How Hello World & 热部署

  • 合理的资源过滤(例如:application.properties和application.yml)。包含特定于概要文件的文件(例如:application-dev.properties和application-dev.yml)

Spring Boot 2.x (二):How Hello World & 热部署

@SpringBootApplication

我们去看BootApplication启动类,可以发现启动类上有这样的一个注解:

Spring Boot 2.x (二):How Hello World & 热部署

本着刨根问底的态度,我们去看一下,这个注解类中都包含了什么:

Spring Boot 2.x (二):How Hello World & 热部署

可以发现这个注解是有多个注解组合而成(@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan
SpringBootApplication启动时会默认扫描主类当前包及子包,如果需要扫描主类当前包外的其他包或不扫描当前包下的特定包或类,可通过上面的被圈住的属性来设置。

Spring Boot 2.x (二):How Hello World & 热部署

现在我们来加入这个配置,摁住ctrl键就可以定位到这个包。
如果我们设置了exclude的属性就不会把这个类加入到Spring管理的容器中,这里需要注意一点的问题就是exclude的必须是auto-configuration的类,否则启动会报错。至于什么是auto-configuration,我们会在后面进行讲解。

热加载

接下来,我来介绍一款开发的利器:DevTools,他可以很大的提升我们开发的效率,那么在IDEA的环境下如何去使用呢?

第一步:添加依赖

Spring Boot 2.x (二):How Hello World & 热部署

第二步:在配置文件中配置监听路径(可省略):

Spring Boot 2.x (二):How Hello World & 热部署

第三步:更改IDEA设置:
首先打开设置窗口,进行以下设置

Spring Boot 2.x (二):How Hello World & 热部署

然后,回到页面摁住Ctrl + Shift + Alt + /(Mac下是Command + Shift + Option + /),会出现以下的页面:

Spring Boot 2.x (二):How Hello World & 热部署

点击Registry后,会出现以下页面进行配置:

Spring Boot 2.x (二):How Hello World & 热部署

到这里就算是大功告成了~

这一篇就先到这里,下周我们继续。

原创文章,文笔有限,才疏学浅,文中若有不正之处,万望告知


云撸猫

Spring Boot 2.x (二):How Hello World & 热部署


公众号

Spring Boot 2.x (二):How Hello World & 热部署

相关文章:

  • 2021-10-11
  • 2021-09-28
  • 2021-09-03
  • 2021-10-01
  • 2021-10-11
  • 2021-08-12
猜你喜欢
  • 2021-11-22
  • 2022-12-23
  • 2021-08-21
  • 2021-05-18
  • 2021-06-21
  • 2021-11-08
  • 2021-12-03
相关资源
相似解决方案