美文网首页
springboot自动配置

springboot自动配置

作者: Qiansion齐木楠雄 | 来源:发表于2021-06-27 23:00 被阅读0次

    1、自动配置

    springboot自动配置做了哪些事?

    自动配好tomcat

    引入tomcat依赖,该依赖在spring-boot-starter-web

        <dependency>
          <groupId>org.springframework.boot</groupId>
          <artifactId>spring-boot-starter-tomcat</artifactId>
          <version>2.3.4.RELEASE</version>
          <scope>compile</scope>
        </dependency>
    

    自动配好SpringMVC

    引入SpringMVC全套组件
    自动配好SpringMVC常用组件(功能)

    自动配好Web常见功能,如:字符编码问题

    Springboot帮我们配置好了所有web开发的常见场景

    默认的包结构

    主程序所在的包及其下面所有子包里面的组件都会被默认扫描进来
    无需以前的包扫描配置

    image.png
    类似上图这种就无法被扫描出来 TestController1在per包下,而主程序在wqy包下。
    如果想要修改springboot默认包扫描路径,需要添加@SpringBootApplication(scanBasePackages = "per")也可以使用@ComponentScan指定扫描路径
    @SpringBootApplication(scanBasePackages = "per")
    等同于
    @SpringBootConfiguration
    @EnableAutoConfiguration
    @ComponentScan("per")
    

    各种配置拥有的默认值

    从下图中我们可以看出springboot给我们提供的一些默认配置


    image.png

    我们通过Ctrl+左键也可以看到这些属性所绑定的类
    比如:
    此处我们设置上传文件大小为10MB


    image.png
    我们可以在类中找到
    image.png

    所以说,配置文件的值最终会绑定到每个类上,这个类会在容器中创建对象

    按需加载所有自动配置项

    在springboot中有非常多的starter
    引入了哪些场景这个场景的自动配置才会开启
    SpringBoot所有的自动配置功能都在spring-boot-autoconfigure中(它包含在spring-boot-starter-web中),
    在项目的依赖中我们可以看到

    image.png
    这里有很多的自动配置,比如aop自动配置,batch批处理自动配置等等。此处aop的自动配置应该是默认加载的,但是批处理却不是,从它们各自的autoConfiguration中可以看出端倪,这里暂时不做讲解,后面会进行详细说明(了解自动配置的前提是对自动配置的注解的熟悉)。当然,如果要使它们的自动配置生效,导入相关包是必要条件。就如同这里,要使批处理的自动配置生效,我们需要引入批处理的依赖
    <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-batch -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-batch</artifactId>
        <version>2.4.8</version>
    </dependency>
    

    相关文章

      网友评论

          本文标题:springboot自动配置

          本文链接:https://www.haomeiwen.com/subject/dxlxultx.html