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

发布于:2024-04-08 ⋅ 阅读:(192) ⋅ 点赞:(0)

二、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父项目没有管理的需要自行声明好

    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>druid</artifactId>
        <version>1.2.16</version>
    </dependency>

2. 自动配置机制

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

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

        虽然全场景的自动配置都在 spring-boot-autoconfigure这个包,但是不是全都开启的。导入哪个场景就开启哪个自动配置。

网站公告

今日签到

点亮在社区的每一天
去签到