1.父项目(Spring Boot的版本仲裁中心,以后我们导入依赖默认是不需要写版本。)
org.springframework.boot spring-boot-starter-parent 2.6.7
2.启动器
org.springframework.boot spring-boot-starter-web
spring-boot-starter-web:spring-boot的场景启动器;帮我们导入了web模块正常运行所依赖的组件;
SpringBoot将所有的功能场景都抽取出来,做成了对应的starters(启动器),只要在创建项目时,勾线需要的场景启动器即可。
2.主程序类
@SpringBootApplication
public class SpringBootInit01Application {
public static void main(String[] args) {
SpringApplication.run(SpringBootInit01Application.class, args);
}
}
@SpringBootApplication:将这个注解标注在某个类上说明这个类是SpringBoot的主程序类,SpringBoot就可以运行这个类的main方法来启动SpringBoot应用;
打开SpringBootApplication注解查看源码//主要注解
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@SpringBootConfiguration
@EnableAutoConfiguration
@ComponentScan(
excludeFilters = {@Filter(
type = FilterType.CUSTOM,
classes = {TypeExcludeFilter.class}
), @Filter(
type = FilterType.CUSTOM,
classes = {AutoConfigurationExcludeFilter.class}
)}
)
public @interface SpringBootApplication {
主要注解介绍:
@ComponentScan(组件扫描)
可以自动发现和装配bean,默认扫描SpringApplication的run方法里的主启动类.class所在的包路径下的文件。
@SpringBootConfiguration(SpringBoot的配置类)
标注在某一个类上,表示这是一个SpringBoot的配置类
@Configuraction(配置类上标注这个注解)
配置类—配置文件;配置类也是容器中的一个组件;
@Component作用同@Service一样,在配置文件中创建了一个对象
@EnableAutoConfiguration(开启自动配置功能)—以下是该注解的源文件
@Target({ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
@AutoConfigurationPackage
@Import({AutoConfigurationImportSelector.class})
public @interface EnableAutoConfiguration {
String ENABLED_OVERRIDE_PROPERTY = "spring.boot.enableautoconfiguration";
Class>[] exclude() default {};
String[] excludeName() default {};
}
@AutoConfigurationPackage:自动配置包
@Import({AutoConfigurationImportSelector.class})给容器中导入一个组件



