SpringBoot2.x入门到项目实战课程系列(第二章)( 二 )
// 当前hello项目的 父级依赖
- spring-boot-starter : Spring Boot 场景启动器 , Spring Boot将所有的功能场景抽取出来 , 做成一个的starters(启动器) , 只需项目里引入相关场景的starter ,就会将它所有依赖导入进来 。 要用什么功能就导入什么场景的启动器 。 (各种启动器可参见官方文档 starter)
- spring-boot-starter-parent :它父依赖 spring-boot-dependencies , 参见下面:
// spring-boot-starter-parent 的 父级依赖 org.springframework.boot spring-boot-dependencies 1.5.9.RELEASE ../../spring-boot-dependencies
- spring-boot-dependencies 是管理了 Spring Boot项目中的所有依赖版本
文章插图
- 以后 我们导入依赖默认不需要写版本号 , 也就是可以省去 version 标签;(当前没有在dependencies里面管理的依赖自然需要声明版本号)
- spring-boot-starter-web
org.springframework.boot spring-boot-starter-web
- 依赖导入了 Web 项目运行所依赖的组件;如 Tomcat / SpringMVC等
/*** @SpringBootApplication 用于标识一个引导类,说明当前是Spring Boot项目* @Auther: www.dragon.com*/@SpringBootApplicationpublic class HelloMailAppliation { public static void main(String[] args) {SpringApplication.run(HelloMailAppliation.class, args); }}
- 通常有一个名为 *Application 的入口 类 , 里面定义一个main方法 , 使用SpringApplication.run(HelloMailAppliation.class, args); 来启动 SpringBoot 应用项目
- @SpringBootApplication 注解主要组合了 @SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan
- @SpringBootApplication 注解说明:
- 标注在某个类上 ,说明这个类是 Spring Boot 的引导类 , Spring Boot 就应该运行这个类的main方法来启动 SpringBoot 应用;
@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 {
- @SpringBootApplication 是以下3个注解的总和:
- @SpringBootConfiguration:用于定义一个Spring Boot的配置类( 配置类 等同 配置文件)
- 引用了 @Configuration 注解 , 是Spring底层的一个注解 , 用于定义 Spring 的配置类 。
- 配置类也是容器中的一个组件 @Component
- @EnableAutoConfiguration :
- 告诉Spring Boot开启自动配置功能 , 这样Spring Boot会自动根据你导入的依赖jar包来自动配置项目 。
@AutoConfigurationPackage@Import({AutoConfigurationImportSelector.class})public @interface EnableAutoConfiguration {
- @AutoConfigurationPackage ——》 @Import({Registrar.class})
- 会将引导类(@SpringBootApplication标注的类)所在的包及下面所有子包里面的所有组件扫描到Spring容器;
- @Import({AutoConfigurationImportSelector.class})
- 将所有需要导入的组件以全类名的方式返回; 这些组件就会被添加到容器中
- 会给容器导入非常多的自动配置类(xxxxAutoConfiguration),就是导入并配置好当前项目中所需要的组件,省去我们手动编写配置去注入组件.
文章插图
- Spring Boot在启动的时候从(spring-boot-autoconfigure-2.0.6.RELEASE.jar)类路径下的METAINF/spring.factories中获取EnableAutoConfiguration指定的值 , 将这些值作为自动配置类导入到容器中 , 自动配置类就生效 , 帮我们进行自动配置工作;以前我们需要自己配置的文件 , 自动配置类都帮我们完成了;
文章插图
- @ComponentScan: 该注解标识的类, 会被 Spring 自动扫描并且装入bean容器 。
- 注:初始化向导需要联网创建Spring Boot项目
文章插图
文章插图
- saas|上半年的Redmi K40 Pro,现在入手2500元不到,还等?
- oppo reno|到OPPO线下体验了一番,终于知道Reno7系列为什么卖得这么好了
- 亚马逊|当物联网遇到元宇宙
- 腾讯音乐|市值超410亿港元,网易云音乐到底值不值?
- 电池|百元级散热器,超频三东海R4000拯救热到可以蒸蛋的机箱
- 技术|张勇内部分享,解读阿里巴巴技术路线:把先进技术用到真实的大场景里去
- 融资丨端到端通用AI智能制造平台提供商「依瞳科技」完成新一轮融资,卓源资本领投
- 量子计算|从微商到直播,一个顶流江湖的兴衰
- |LoRa做到了!实现低功耗和远距离通信!
- 物流|跨境开源时代到来,一夜暴富的梦该醒了