springBoot2.3-简单了解依赖管理、自动配置

一、自动依赖管理

        基本介绍:springBoot提前帮我们写好了极多的依赖及版本号,当然我们也可以自定义依赖项与版本号。

1.1  简单介绍

1、在入门案例中,springBoot的maven中引入了parent父工程

springBoot2.3-简单了解依赖管理、自动配置_第1张图片

2、ctrl + 左键 parent, 发现里边还有一个祖宗parent,这个祖宗parent中,写好了极多的依赖及版本号

springBoot2.3-简单了解依赖管理、自动配置_第2张图片

3、当然,我们开发不需要那么多的依赖都配置上

4、在入门springBoot中, 我们引入了web场景依赖 ,这时springBoot会从parent中取出web开发所需要的依赖及版本号

    
            org.springframework.boot
            spring-boot-starter-web
        

1.2场景启动器

1、见到很多 spring-boot-starter-* : *就某种场景
2、只要引入starter,这个场景的所有常规需要的依赖我们都自动引入
3、SpringBoot所有支持的场景
https://docs.spring.io/spring-boot/docs/current/reference/html/using-spring-boot.html#using-boot-starter
4、见到的  *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器。
5、所有场景启动器最底层的依赖

  org.springframework.boot
  spring-boot-starter
  2.3.4.RELEASE
  compile

1.3如何自定义依赖项及版本号

        我们引入web场景依赖后,发现默认的依赖中没有mysql驱动,此时应该怎么办呢?

        1.3.1 自定义依赖项

        spring-boot-starter-web中默认没有mysql驱动,此时可以自己在你项目的依赖中去写(可以不需要写版本号,因为parent已经帮我们声明了)

  • 无需关注版本号,自动版本仲裁

mysql
mysql-connector-java

        1.3.2自定义版本

        可以在项目maven中配置以下声明,就可以了(覆盖了原来自带的声明)

二、自动配置

springBoot帮我们自动配置很多,例如如下内容

2.1自动配置好tomcat

        引入依赖后,再配置好tomcat

2.2自动配置好springMVC

        引入依赖后,再配置好springMVC,

        例如:

                2.2.1 自动配置好常见的web配置

                        dispatcherServlet , 

                        视图解析器resolver(跳转页面),

                        characterEcodingFilter()(防止返回页面消息乱码 )

                        上传下载拦截器

                        ..........等等

2.3 默认的包结构

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

       想要改变扫描路径,@SpringBootApplication(scanBasePackages="com.atguigu")

2.4 按需加载

    • SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面

你可能感兴趣的:(springBoot学习,spring,boot,后端,java)