首页 > 其他分享 >02-依赖管理和自动配置

02-依赖管理和自动配置

时间:2023-04-01 22:12:24浏览次数:55  
标签:02 依赖 spring 配置 boot 自动 starter

依赖管理

什么是依赖管理

  1. spring-boot-starter-parent 还有父项目, 声明了开发中常用的依赖的版本号
  2. 并且进行 自动版本仲裁 , 即如果程序员没有指定某个依赖 jar 的版本,则以父项目指
    定的版本为准

修改自动仲裁/默认版本号

e.g. 将 SpringBoot mysql 驱动修改成 5.1.49

starter 场景启动器

start基本介绍

  1. 开发中我们引入了相关场景的 starter,这个场景中所有的相关依赖都引入进来了,比如
    我们做 web 开发引入了,该 starter 将导入与 web 开发相关的所有包

  1. 依赖树 : 可以看到 spring-boot-starter-web ,帮我们引入了 spring-webmvc,spring-web
    开发模块,还引入了 spring-boot-starter-tomcat 场景,spring-boot-starter-json 场景,这些
    场景下面又引入了一大堆相关的包,这些依赖项可以快速启动和运行一个项目,提高开发
    效率.

  2. 所有场景启动器最基本的依赖就是 spring-boot-starter , 前面的依赖树分析可以看到,这个依赖也就是 SpringBoot 自动配置的核心依赖

官方start文档

  1. 在开发中我们经常会用到 spring-boot-starter-xxx ,比如 spring-boot-starter-web,该场
    景是用作 web 开发,也就是说 xxx 是某种开发场景。

  2. 我们只要引入 starter,这个场景的所有常规需要的依赖我们都自动引入

  3. SpringBoot2 支 持 的 所 有 场 景 如 下 :

第三方starter

  • SpringBoot 也支持第三方 starter

  • 第三方 starter 不要从 spring-boot 开始,因为这是官方 spring-boot 保留的命名方式的。
    第三方启动程序通常以项目名称开头。例如,名为 thirdpartyproject 的第三方启动程序项
    目通常被命名为 thirdpartyproject-spring-boot-starter

  • 也就是说:xxx-spring-boot-starter 是第三方为我们提供的简化开发的场景启动器

自动配置

  1. 学习 SSM 整合时,需要配置 Tomcat 、配置 SpringMVC、配置如
    何扫描包、配置字符过滤器、配置视图解析器、文件上传等[如图],非常麻烦。而在
    SpringBoot 中,存在自动配置机制,提高开发效率

  2. SpringBoot 自动配置了哪些?

  • 自动配置 Tomcat
  • 自动配置 SpringMVC
  • 自动配置 Web 常用功能: 比如字符过滤器
    我们可以通过debug启动类来查看容器中的组件。
@SpringBootApplication
public class MainApp {
    public static void main(String[] args) {
        ConfigurableApplicationContext container =  SpringApplication.run(MainApp.class, args);

        //查看容器里面的组件
        String[] beanDefinitionNames = container.getBeanDefinitionNames();
        for (String beanDefinitionName : beanDefinitionNames) {
            System.out.println(beanDefinitionName);
        }
    }

}
  1. 自动配置 : 默 认 扫 描 包 结 构 !!! 官方文档
    默认主程序(使用@SpringBootApplication注解修饰、带有main方法)所在包及其子包下会被扫描。

如何修改默认配置

标签:02,依赖,spring,配置,boot,自动,starter
From: https://www.cnblogs.com/tswinter3/p/17279468.html

相关文章

  • 2023-04-01 图论问题建模和floodfill
    图论问题建模和floodfillfloodfill(洪泛)实际就是图的遍历1图论问题例子:判断二分图题目来源:LeetCode785is-graph-bipartite:,判断二分图,因为题目中已经给出了邻接表,相当于已经给出了Graph,所以直接用二分图的核心算法即可,参考DFS实现二分图检测实现代码2图的建模和二......
  • 202031607230-王格 实验一 软件工程准备--构建之法与博客首秀
    实验一软件工程准备项目内容班级博客链接2023年春软件工程本次作业要求链接实验一软件工程准备我的课程学习目标1.学习博客园软件开发者学习社区使用技巧和经验。2.了解Github工具的基本操作3.阅读《现代软件工程—构建之法》,深入了解什么是软件工程......
  • GDOI2023 游记
    DAY-1乱做去年省选题。被ZJOID1T1和联合省选D2T1吊打了,感觉自己可以去划水了。DAY0上午提前拍了毕业照,下午坐车去广州。下地铁时下着雨,打了车去酒店,并没有太在意路景。入住的酒店好像是大学城唯一的酒店,外面的环境非常美,绿化率很高。去试机。因为是周五路极堵,最后一......
  • 使用mybatis-plus方法自动生成代码(1)
    首先,在项目的pom.xml文件中添加如下依赖:<dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.3</version></dependency><dependency><groupId&......
  • 英语背单词 专四词汇 202304 ChatGPT
    英语背单词专四词汇202302以及202303ChatGPT-ChuckLu-博客园(cnblogs.com)2023-04-01Explainthemeaningofthefollowingwordsalongwithindexandphoneticsymbol:crusade,scandal,jack,peril,optimism,anchor,burial,jerk,erase,bother,sardine,album......
  • 公共字段自动填充,例如更新时间,创建时间,创建人等
       加这个注解,可以创建,可以修改,也可以创建与修改时:@TableField(fill=FieldFill.INSERT_UPDATE)//创建与修改时自动填充privateLocalDateTimeupdateTime;然后编写一个类,实现MetaObjectHandler接口重写insert和update方法例如:mportcom.baomidou.mybatisplus.......
  • 联合省选 2023
    Day1预计:\(100+25+48=173\),大众分。T3爆栈不会开大栈空间调了1h,T2树的部分分没写完,损失惨重。开大栈空间:-Wl,--stack=134217728(128MB,注意,没有空格)。O2:-O2。错误信息:-Wall。-Wall-O2-Wl,--stack=134217728。Day2总结与反思......
  • 省选联考2023游记
    day\(-n\sim-1\)上课卷点数据结构和树形dp,虽然不是板题不会做,但是还是学会了一些小trick。下课摆烂。day\(0\)摆了一天的烂,下午动员+板刷zxy游记,不过pty说的非常有道理,省选就是心态比赛,稳住心态就可以拿让人满意的分数。day\(1\)8:20左右坐到了位置上,试了下键盘,好不......
  • 202031607327-杨辽辽 实验一 软件工程准备 初步了解软件工程
    202031607327-杨辽辽实验一软件工程准备初步了解软件工程项目内容班级博客链接20级卓越班本次作业要求链接实验一软件工程准备我的课程学习目标1.学习博客园软件开发者学习社区使用技巧和经验;2.了解Github的基本操作;本次作业在哪些方面帮我实现学习......
  • [省选联考 2023]D1 题解
    D1T1P9166火车站观察题目,联系到以前做过的一些区间dp可以发现如果小A可以去到(这里是去到而不是最终停在)\(k\)地点,那么\(x\)到\(k\)之间的所有地点他都可以去到,因为火车是连续的,不能跳着走,要来到当前地点必须到过路途中的所有节点。这样子就好办了,分两次处理往左边和......