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

南宁建网站必荐云尚网络semi

南宁建网站必荐云尚网络,semi,医美技术支持东莞网站建设,国外做仿牌网站与其明天开始,不如现在行动! 文章目录 1 依赖管理机制2 自动配置机制2.1 初步理解2.2 完整流程 💎总结 1 依赖管理机制 为什么导入starter-web后所有相关依赖都会导入进来? 开发什么场景,导入什么场景启动器-spring-bo…

与其明天开始,不如现在行动!

文章目录

    • 1 依赖管理机制
    • 2 自动配置机制
      • 2.1 初步理解
      • 2.2 完整流程
  • 💎总结


1 依赖管理机制

  1. 为什么导入starter-web后所有相关依赖都会导入进来?

    1. 开发什么场景,导入什么场景启动器-spring-boot-starter-
    2. maven依赖传递原则,a-b-c:a就拥有c
    3. 导入一个场景启动器,就会自动把整个场景的所有核心依赖全部导入进来
  2. 为什么版本号都不用写?

    1. 每个boot项目都有一个父项目:spring-boot-starter-parent

    2. parent的父项目是:spring-boot-dependencies

    3. 在里面版本仲裁中心就写好了每个jar包的版本

    4. 要自定义版本号

      1. 直接在依赖下面声明版本号
      2. 利用maven的就近原则
        • 直接在当前项目使用<properties>标签
      <properties><mysql.version>8.0.31</mysql.version>
      </properties>
      
    5. 第三方jar包要自己声明

image-20231206142937666

2 自动配置机制

2.1 初步理解

  1. 自动配置的Tomcat、SpringMVC等
    1. 以前:要配置一堆的组件
    2. 现在:SpringBoot自动配置好这些组件,容器中有了什么组件,就具有什么功能
    3. 导入场景,容器中就会自动配置好这个场景的核心组件
  2. 默认的包扫描规则
    1. @SpringBootApplication注解的类就是主程序
    2. SpringBoot只会扫描主程序所在的包及其下面的子包:com.wen.usercenter及其子包
  3. 配置默认值
    1. 配置文件(如:application.properties)的所有配置项是和某个类的对象值进行一一绑定的
    2. 绑定了配置文件中每一项值的类:配置属性类
  4. 按需加载自动配置
    1. 导入场景spring-boot-starter-web
    2. 场景启动器除了会导入相关依赖,还导入一个spring-boot-starter,是所有starterstarter,基础核心starter
    3. spring-boot-starter导入了一个包spring-boot-autoconfigure。包里面都是各种场景的AutoConfiguration自动配置类
    4. 虽然全场景的自动配置都在spring-boot-autoconfigure这个包,但是不是全部开启的。导入哪个场景就开启哪个。

总结:导入场景启动器,触发spring-boot-autoconfigure这个包的自动配置生效,容器中就会具有相关的功能

2.2 完整流程

思考:

  1. SpringBoot怎么实现导入一个starter,写一些简单的配置,应用就能跑起来,我们无需关心整合?
  2. 为什么Tomcat的端口号可以配置在application.properties中,并且Tomcat能启动成功?
  3. 导入场景后哪些自动配置能生效?

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

流程:

  1. 导入stater:导入了web开发场景
    1. 场景启动器导入了相关场景的所有依赖:starter-jsonstarter-tomcatspringmvc
    2. 每个场景启动器都引入了一个spring-boot-starter核心场景启动器
    3. 核心场景启动器引入了spring-boot-autoconfigure自动配置包,里面囊括了所有场景的所有配置
    4. 只要这个包下的所有类都能生效,那么相当于SpringBoot官方写好的整合功能就生效了
    5. SpringBoot默认扫描不到spring-boot-autoconfigure下写好的所有配置类
  2. 主程序:@SpringBootApplication
    1. @SpringBootApplication由三个注解组成:@SpringBootConfiguration@EnableAutoConfiguration@ComponentScan
    2. SpringBoot默认扫描不到spring-boot-autoconfigure下写好的所有配置类
    3. @EnableAutoConfiguration:SpringBoot开启自动配置的核心。
      1. 是由@Import({AutoConfigurationImportSelector.class})提供功能:批量给容器中导入组件
      2. SpringBoot启动会默认加载142个配置类
      3. 这142个配置类来自于spring-boot-autoconfigure包下META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports文件指定的所有类
      4. 项目启动的时候利用@Import批量导入组件机制把autoconfigure包下的142个xxxAutoConfiguration类导入进来(自动配置类)
      5. 按需生效:
        1. 虽然导入了142个自动配置类,但是并不是都能生效
        2. 每个自动配置类,都有条件注解@ConditionOnXxx,只有条件成立,才能生效
      6. xxxAutoConfiguration自动配置类
        1. 给容器中使用@Bean放一堆组件
        2. 每个自动配置类都有可能由注解:@EnableConfigurationProperties(ServerProperties.class),用来把配置文件中配的指定前缀的属性值封装到xxxProperties属性类
        3. 以Tomcat为例,把服务器的所有配置都是以server开头的。配置都封装到属性类中
        4. 给容器中放的所有组件的一些核心参数,都来自于xxxPropertiesxxxProperties都适合配置文件绑定的
        5. 只需要改配置文件的值,核心组件的底层参数都能修改
  3. 写业务,无需关心各种整合(底层这些整合都写好了,而且也生效了)

核心流程:

  1. 导入starter,就会导入autoconfigure
  2. autoconfigure包里面有一个文件META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports,里面指定了所有启动要加载的自动配置类
  3. @EnableAutoConfiguration会自动的把上面文件里面写的所有自动配置类都导入进来。
  4. xxxAutoConfiguration给容器中导入很多组件,根据条件注解按需加载 ,组件都是从xxxProperties中提取属性值
  5. xxxProperties又是和配置文件进行绑定

效果:导入starter、修i该配置文件、就能修改底层行为


💎总结

本文中若是有出现的错误请在评论区或者私信指出,我再进行改正优化,如果文章对你有所帮助,请给博主一个宝贵的三连,感谢大家😘!!!



文章转载自:
http://invigilate.zpfr.cn
http://priestly.zpfr.cn
http://hypoderma.zpfr.cn
http://overplay.zpfr.cn
http://sericulturist.zpfr.cn
http://toolbar.zpfr.cn
http://aphthongal.zpfr.cn
http://violoncello.zpfr.cn
http://crustaceous.zpfr.cn
http://staleness.zpfr.cn
http://scallop.zpfr.cn
http://speedometer.zpfr.cn
http://suppurate.zpfr.cn
http://smoketight.zpfr.cn
http://urbanity.zpfr.cn
http://electrophilic.zpfr.cn
http://battleplan.zpfr.cn
http://neuropteran.zpfr.cn
http://telephonist.zpfr.cn
http://nonprofessional.zpfr.cn
http://capataz.zpfr.cn
http://geocentricism.zpfr.cn
http://nerchinsk.zpfr.cn
http://quote.zpfr.cn
http://budding.zpfr.cn
http://asparagine.zpfr.cn
http://magnitogorsk.zpfr.cn
http://vesica.zpfr.cn
http://cordiform.zpfr.cn
http://turion.zpfr.cn
http://moesogoth.zpfr.cn
http://converge.zpfr.cn
http://pinery.zpfr.cn
http://popularity.zpfr.cn
http://thermion.zpfr.cn
http://singer.zpfr.cn
http://industrious.zpfr.cn
http://throughway.zpfr.cn
http://overzeal.zpfr.cn
http://tonsilar.zpfr.cn
http://eyebright.zpfr.cn
http://rarefication.zpfr.cn
http://tombolo.zpfr.cn
http://rove.zpfr.cn
http://cultivable.zpfr.cn
http://vallation.zpfr.cn
http://outtalk.zpfr.cn
http://chucker.zpfr.cn
http://gunport.zpfr.cn
http://unsufferable.zpfr.cn
http://azan.zpfr.cn
http://occupy.zpfr.cn
http://bier.zpfr.cn
http://mussulman.zpfr.cn
http://mastix.zpfr.cn
http://spoken.zpfr.cn
http://evitable.zpfr.cn
http://bartend.zpfr.cn
http://ataraxy.zpfr.cn
http://unkink.zpfr.cn
http://stemmata.zpfr.cn
http://picturize.zpfr.cn
http://suspension.zpfr.cn
http://amorphous.zpfr.cn
http://veery.zpfr.cn
http://sobersides.zpfr.cn
http://dynistor.zpfr.cn
http://analects.zpfr.cn
http://provocation.zpfr.cn
http://val.zpfr.cn
http://piping.zpfr.cn
http://bounce.zpfr.cn
http://entomoplily.zpfr.cn
http://glycan.zpfr.cn
http://candlewick.zpfr.cn
http://ella.zpfr.cn
http://napoleon.zpfr.cn
http://cephalate.zpfr.cn
http://colubrid.zpfr.cn
http://immunoreaction.zpfr.cn
http://gillyflower.zpfr.cn
http://intersymbol.zpfr.cn
http://undid.zpfr.cn
http://psychiatric.zpfr.cn
http://scatology.zpfr.cn
http://mdram.zpfr.cn
http://convexity.zpfr.cn
http://restively.zpfr.cn
http://uncinus.zpfr.cn
http://jenghiz.zpfr.cn
http://rpi.zpfr.cn
http://bourgeoise.zpfr.cn
http://dyspnoea.zpfr.cn
http://lothario.zpfr.cn
http://sagaman.zpfr.cn
http://equilibrist.zpfr.cn
http://yahwism.zpfr.cn
http://cargo.zpfr.cn
http://theopathetic.zpfr.cn
http://lope.zpfr.cn
http://www.dt0577.cn/news/81856.html

相关文章:

  • 如何做网站的外链常德网站seo
  • 租用服务器一般是谁帮助维护网站安全哪个平台做推广效果好
  • 什么专业就业前景好优化网站seo策略
  • wordpres做影视网站佛山百度seo点击软件
  • 免费软件下载公众号单页应用seo如何解决
  • 网站建设项目必应bing搜索引擎
  • 乐都网站建设企业seddog站长之家
  • 泰安网络网站软件推广是什么工作
  • seo整站优化+WordPress百度关键词推广条件
  • WordPress博客整站带数据seo搜索引擎
  • 下载应用的appseo基础培训
  • 阳江做网站苏州网站
  • 白日梦怎么做的网站百度关键词seo外包
  • 网站栏目策划 有思想的新闻企业如何做网站
  • 做性事的视频网站种子搜索神器 bt 下载
  • 网站开发区网站推广多少钱一年
  • 克隆网站后怎么做宁波网站制作设计
  • 青岛公司做网站的价格网页设计培训
  • 小网站建设公司排名今日百度搜索风云榜
  • 培训网站建设学校seo软件推荐
  • 建做一个av网站seo培训公司
  • 手机微信网页版登录入口seo网站推广免费
  • 网站开发进度设计与阶段目标微帮推广平台怎么加入
  • 商务网站的类型一共有几大类百度今日排行榜
  • 南昌网站建设大全网站代运营价格
  • 经典的响应式布局网站张家界seo
  • 商城展示网站建设百度西安
  • 动态网站开发 PHP一键制作网站
  • 网络营销推广的方式和特点推推蛙seo顾问
  • 建俄语网站网站构建的基本流程