SpringBoot学习笔记二:SpringBoot原理解读

1.pom.xml中父工程的配置

 <!-- 父工程    -->
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.2.2.RELEASE</version>
    </parent>

(此处代码引用自上节SpringBoot学习笔记一中的pom.xml)
点击artifactId标签中的spring-boot-starter-parent跳转至spring-boot-starter-parent-2.2.2.RELEASE的pom文件,可以发现该pom文件中也有一个父工程:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.2.2.RELEASE</version>
    <relativePath>../../spring-boot-dependencies</relativePath>
  </parent>

同样的方法追寻到spring-boot-dependencies-2.2.2.RELEASE的pom文件,可以看到该pom文件中配置了众多常用jar的版本号。由此可见,父工程的本质作用为:对开发过程中常见依赖的版本进行锁定,因此我们在项目开发过程中添加依赖的时候,就可以不需要指定版本号。
需要注意的是:

  • 对于父工程中没有指定的依赖,还需要手动添加版本号。
  • 父工程中已经指定了版本号,手动配置时又重复指定的情况下,以手动配置的版本号为准。

2.SpringBoot启动器

  • SpringBoot对我们日常开发的大部分常用场景都进行了封装,封装成若干个启动器。每个启动器都包含对应场景下所需要的所有相关依赖。因此,在开发过程中需要什么场景就可以直接添加什么场景的启动器,由此简化maven配置。
    以SpringWeb启动器为例:
<!--  web启动器依赖  -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

在项目的maven窗口中打开展开依赖结构,如下图所示:
在这里插入图片描述可以看到SpringBoot的web启动器下自动将所有相关的依赖都导入进来了。

3.主程序类分析

SpringBoot启动类代码:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication  // SpringBoot启动入口配置
public class SpringbootjpademoApplication {

    public static void main(String[] args) {
        SpringApplication.run(SpringbootjpademoApplication.class, args);
    }

}

@SpringBootApplication注解类中包含的两个核心注解:

  • @SpringBootConfiguration( SpringBoot的配置类)
    该注解等价于Spring中的@Configuration。作用与使用applicationContext.xml配置文件来注册Bean等同。SpringBoot推荐使用配置文件,推荐使用配置类。
  • @EnableAutoConfiguration (开启自动配置)
    该类包含的核心注解为:
    - @Import({AutoConfigurationImportSelector.class}) 作用是向容器中注册组件。SpringBoot在启动时会注册很多自动配置包(2.2.4版本中是124个),因此很多配置都不需要手动配置,只需要对部分配置按需更改。
    - @AutoConfigurationPackage作用是自动配置导包。即获取@SpringBootApplication注解所修饰的主程序类所在的包,将该包下的所有组件注册到容器中。此时将从124个已注册的配置中选出需要注册到容器中的组件对应所需的jar包导入到项目中。具体项目中的【组件】是指被特定注解修饰后,具有特定作用和意义的类或者方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值