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")

浙公网安备 33010602011771号