当前位置:   article > 正文

Spring Boot-02-依赖管理和自动配置

Spring Boot-02-依赖管理和自动配置

二、Spring Boot的两大重要机制

1. 依赖管理机制

  • 开发什么场景,导入什么场景启动器场景启动器自动把这个场景的所有核心依赖全部导入进来。
  • maven依赖传递原则:A依赖B,B依赖C,则A就拥有B和C。
  • 每个boot项目都有一个父项目spring-boot-starter-parent,parent的父项目是spring-boot-dependencies
  • 父项目版本仲裁中心,把所有常见的jar的依赖版本都声明好了。如果要自定义版本号,利用maven的就近原则,直接在当前项目properties标签中声明父项目用的版本属性,或者直接在导入依赖的时候声明版本。
  • 对于第三方的jar包,boot父项目没有管理的需要自行声明好

    1. <dependency>
    2. <groupId>com.alibaba</groupId>
    3. <artifactId>druid</artifactId>
    4. <version>1.2.16</version>
    5. </dependency>

2. 自动配置机制

  • 自动配置的 Tomcat、SpringMVC 等,导入场景,容器中就会自动配置好这个场景的核心组件。
  • 默认的扫包规则:@SpringBootApplication 标注的类就是主程序类,SpringBoot只会扫描主程序所在的包及其下面的子包,自动的component-scan功能。
  • 自定义扫描包路径:
  1. @SpringBootApplication(scanBasePackages = "com.circle")
  2. @ComponentScan("com.circle")
  1. // ioc 容器
  2. ConfigurableApplicationContext ioc = SpringApplication.run(MainApplication.class,args);
  3. //1、获取容器中所有组件的名字
  4. String[] names = ioc.getBeanDefinitionNames();
  5. //2、挨个遍历:
  6. // dispatcherServlet、beanNameViewResolver、characterEncodingFilter、multipartResolver
  7. // SpringBoot把以前配置的核心组件现在都给我们自动配置好了。
  8. for (String name : names) {
  9. System.out.println(name);
  10. }
  •  按需加载自动配置:

        导入场景spring-boot-starter-web,场景启动器除了会导入相关功能依赖,导入一个spring-boot-starter,是所有starterstarter,基础核心starter。spring-boot-starter导入了一个包 spring-boot-autoconfigure,包里面都是各种场景的AutoConfiguration自动配置类。虽然全场景的自动配置都在 spring-boot-autoconfigure这个包,但是不是全都开启的。导入哪个场景就开启哪个自动配置。

        虽然全场景的自动配置都在 spring-boot-autoconfigure这个包,但是不是全都开启的。导入哪个场景就开启哪个自动配置。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/知新_RL/article/detail/418348
推荐阅读
相关标签
  

闽ICP备14008679号