当前位置: 首页 > news >正文

SpringBoot-依赖管理和自动配置

依赖管理

1. spring-boot-starter-parent的父项目

<!--几乎声明了所有开发中常用的依赖的版本号,自动版本仲裁机制-->
<parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-dependencies</artifactId><version>2.3.4.RELEASE</version>
</parent>

2. starter场景启动器

  • 开发什么场景,导⼊什么场景启动器,场景启动器⾃动把这个场景的所有核⼼依赖全部导⼊
  • maven依赖传递原则。A-B-C: A就拥有B和C 
  • spring-boot-starter-* : *就代表某种场景,SpringBoot所有支持的*场景
  • 引入starter-*,这个场景的所有常规需要的依赖都自动引入
  • *-spring-boot-starter: 第三方为我们提供的简化开发的场景启动器

3. 版本号控制

  • 引入依赖默认都可以不写版本,父项目spring-boot-starter-parent已经将所有依赖设置默认版本,可以通过复写properties标签更改版本号
  • 引入非版本仲裁的jar,要写版本号。

自动配置

1. 自动配置Tomcat

  • 想要自动配置好Tomcat就需要引入Tomcat依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-tomcat</artifactId><version>2.3.4.RELEASE</version><scope>compile</scope>
</dependency>
  • 在依赖管理引入web场景的时候,就已经引入了Tomcat场景
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId>
</dependency>

2. 引入web依赖后自动配完成SpringMVC

  • 前端控制器DispatcherServlet:拦截所有的前端的请求
  • 字符编码characterEncodingFilter:解决返回中文字符串乱码问题
  • 视图解析器viewResolver:对返回的视图进行渲染呈现
  • 文件上传解析器multipatResolver:文件上传
//返回IOC容器
ConfigurableApplicationContext run = SpringApplication.run(MainApplication.class, args);
//查看容器里面的组件
String[] names = run.getBeanDefinitionNames();
for (String name : names) {System.out.println(name);
}

3. 按需自动配置

  • SpringBoot所有的自动配置都依赖@EnableAutoConfiguration
  • SpringBoot所有的自动配置功能都在 spring-boot-autoconfigure 包里面
  • 引入了哪些场景,这个场景的自动配置才会开启,各种配置拥有默认值
    • ServerProperties 绑定了所有Tomcat服务器有关的配置
    • MultipartProperties 绑定了所有⽂件上传相关的配置
    • 默认值参照官⽅⽂档:或者参照 绑定的 属性类。

4. 自动配置原理

https://blog.csdn.net/zl979899/article/details/122391622

包扫描规则

  • @SpringBootApplication 标注的类就是主程序类
  • SpringBoot默认只会扫描主程序类所在的包及其下⾯的子包,自动的component-scan功能
  • 自定义扫描路径
    • @SpringBootApplication(scanBasePackages = "com.xxx")
    • @ComponentScan("com.xxx") 直接指定扫描的路径
http://www.dtcms.com/a/491845.html

相关文章:

  • 网站seo优化有哪些方面定制一款app要多少钱
  • 南通建设工程造价信息网站网站开发需要解决难题
  • 摄影网站开发的意义企业网站搭建步骤
  • 做网站的好处和坏处厦网站建设培训学校
  • CS50ai: week2 Uncertainty我的笔记B版:一口气从“爬山”到“退火”, 优化与CSP超好懂入门
  • 第十章:技术路线:成为“技术扫地僧”(3)
  • cocos creator学习之typeScript常见语法问题
  • 公司网站突然打不开了品牌网站建设 蝌蚪6小
  • 网站 没有备案 访问不了工商联网站建设方案
  • 存在即合理?数字化转型需破除“流程惯性“思维、重构底层逻辑
  • 南阳企业网站制作做网站推广和网络推广
  • 专业网站建站费用wordpress当前网址参数
  • 天猫网站是用什么技术做的东莞响应式网站哪家强
  • 茶文化网站建设内容网络管理软件免费
  • RocketMQ基础知识
  • 天气预报:基于python天气分析预测系统 气象数据分析 机器学习 爬虫 多元线性回归预测算法 中国天气网 Flask框架(建议收藏)✅
  • React 18 的核心设计理念:并发渲染
  • 昆明 网站建设兼职北京石景山网站建设
  • 中小型网站建设资讯网站及数据库怎么做后门
  • 建设网站财务分析wordpress中修改链接
  • 网站模板 实验室西安国际网站设计
  • 建设实验室网站的意义湖南长沙房价
  • 行业热点丨仿真驱动设计:兼顾性能、可持续性与效益
  • 番禺建设网站策划南充房产管理网
  • 网站建设xywlcn网站云主机
  • 网站建设静态部分报告总结长沙旅游必去的八个景点
  • 5种方法解决:安装一个或多个角色、角色服务或功能失败。找不到源文件
  • 虚幻引擎5 GAS开发俯视角RPG游戏 P05-11 消息小部件
  • 网站seo综合诊断福田服务商app软件安装
  • 无缝开发通道:IT-Tools+CPolar让远程协作像坐在一起编码