SpringBoot依赖管理和自动配置

依赖管理

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.3</version>
    <relativePath/>
</parent>

SpringBoot中,在 pom.xml 引入以上代码时,他依赖的父项目为:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-dependencies</artifactId>
    <version>2.4.3</version>
</parent>

spring-boot-dependencies 中已经帮我们声明好了此版本下的 SpringBoot 项目中几乎所有常用的依赖的版本号,如下所示:

<properties>
    <activemq.version>5.16.1</activemq.version>
    <antlr2.version>2.7.7</antlr2.version>
    <appengine-sdk.version>1.9.86</appengine-sdk.version>
    <artemis.version>2.15.0</artemis.version>
    <aspectj.version>1.9.6</aspectj.version>
    <assertj.version>3.18.1</assertj.version>
    <atomikos.version>4.0.6</atomikos.version>
    <awaitility.version>4.0.3</awaitility.version>
    <bitronix.version>2.1.4</bitronix.version>
    <build-helper-maven-plugin.version>3.2.0</build-helper-maven-plugin.version>
    <byte-buddy.version>1.10.20</byte-buddy.version>
    <caffeine.version>2.8.8</caffeine.version>
    .......
</properties>

因此,当我们在 pom.xml 文件中写入依赖时,并不需要我们手动去配置版本号,SpringBoot 已经帮我们配置好。

但当引入非版本仲裁的jar时,要写版本号。

也可以在 pom.xml 修改默认的版本号,如:

<properties>
    <mysql.version>5.1.43</mysql.version>
</properties>

自动配置

Springboot 项目中的 pom.xml 中的:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

已经为我们自动配置了 Tomcat,SpringMVC,以及 web 常见功能,如字符编码问题。

主程序所在的包及其下面的子包中所有组件都会被默认扫描,无需包扫描配置。

当想要改变扫描路径时,可以使用 @SpringBootApplication(scanBasePackages = "com.phoenix")

@SpringBootApplication(scanBasePackages = "com.phoenix")
public class Demo3Application {
    public static void main(String[] args) {
        SpringApplication.run(Demo3Application.class, args);
    }
}

也可以使用:

@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.phoenix")
public class Demo3Application {
    public static void main(String[] args) {
        SpringApplication.run(Demo3Application.class, args);
    }
}
@SpringBootApplication(scanBasePackages = "com.phoenix")
=
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan("com.phoenix")
posted @ 2021-03-15 00:58  phoenix307  阅读(267)  评论(0)    收藏  举报