细节相关
对配置信息,注解使用进行一个简单说明
父项目:
在添加的如下字段中:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>2.3.4.RELEASE</version>
</parent>
spring-boot-dependencies已经包含了我们需要各种依赖,是springBoot的版本仲裁中心,点开可以看到:
<properties>
<activemq.version>5.15.13</activemq.version>
<antlr2.version>2.7.7</antlr2.version>
<appengine-sdk.version>1.9.82</appengine-sdk.version>
<artemis.version>2.12.0</artemis.version>
<aspectj.version>1.9.6</aspectj.version>
<assertj.version>3.16.1</assertj.version>
<atomikos.version>4.0.6</atomikos.version>
<awaitility.version>4.0.3</awaitility.version>
<bitronix.version>2.1.4</bitronix.version>
...
</properties>
导入的依赖-启动器
在如下配置中:导入了一个web的场景启动器,包含了web开发的所有需要导入的信息。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
</dependencies>
在springBoot中,各种场景已经被分割为不同启动器,要是用相关功能就导入相关场景启动器即可,真正实现了组件开发。
程序相关
注解说明
@SpringBootApplication:说明这个类是SpringBoot的主配置类,SpringBoot就应该运行这个类的main方法来启动SpringBoot应用。其包含了多个注解:
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration //标注在某个类上,表示这是一个Spring Boot的配置类;
@EnableAutoConfiguration //开启自动配置
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
@SpringBootConfiguration
Spring Boot的配置类;标注在某个类上,表示这是一个Spring Boot的配置类;
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Configuration //配置类注解
@EnableAutoConfiguration:
开启自动配置功能,子注解如下:
//自动配置包:将主配置类所在包及下面所有子包里面的所有组件扫描到Spring容器
@AutoConfigurationPackage
//将所有需要导入的组件以全类名的方式返回;这些组件就会被添加到容器中;
@Import({AutoConfigurationImportSelector.class})