JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服

这篇具有很好参考价值的文章主要介绍了JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、Spring配置优先级

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

不同配置文件,配置同一个属性谁有效
properties>yml>yaml

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

命令行参数>Java系统属性

项目打包后要改变属性:
JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

红色是Java系统属性,绿色是命令行参数

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,javaJavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

二、Bean管理

1.获取bean

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

获取IOC容器:applicationContext就是IOC容器对象

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

IOC容器中bean是默认单例的只有一个,这样三个获取的bean是同一个

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

2.bean作用域

单例还是多例取决于作用域
关注于Spring支持前两种作用域

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

默认单例的bean在容器启动的时候就会实例化,加lazy注解就会在第一次使用的时候才会实例

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

3.第三方bean

想要对Java自带的包中的类交给IOC管理,但是是只读的,所以得在使用第三方bean

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

可以放在config包中,设置一个专门的类来集中分类配置

没有设置bean的名字就是默认方法名

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

三、SpringBoot原理

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

Spring Framework依赖配置很麻烦,Spring Boot 简化了操作

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

1.起步依赖

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

在web开发中引入一个依赖就可以,是因为maven的依赖传递

2.自动配置

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

bean和配置类如何加入到IOC容器内的?

配置类就是家里@Configration的类

①自动配置原理

SpringBoot只能扫描启动包及其子包

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

这样来表示要扫描的包有哪些,com.example是引入的包,com.itheima是本项目包所在
这样很繁琐,大面积的扫描

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

但是这种方法还是需要知道要导入第三方依赖中的哪些类,所以应该在第三方依赖中有块地方告诉导入者你要导入哪些?
JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

第三方依赖中有个Enable开头的注解,里面包含了Import注解,表示了要导入哪些类,在Spring中只需要加上这个Enable开头的注解就可以了。
JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

②源码跟踪

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

可以从这个注解入手,先从宏观上看结构

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

AutoConfiguration中Import了一个ImportSelector的实现类,其中的一个selectImports方法中封装了哪些类需要导入到SpringBoot的IOC容器中。

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

这两个文件中包含了要加载配置类的全类名,在这个配置类中表明了哪些类对象要被加载进IOC容器中,SpringBoot启动后就可以在程序中直接自动注入这个Bean对象。

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

而这些Bean不会全部都注册到IOC容器中,因为ConditionalOnMissingBean注解的存在。按条件装配,当条件满足才会装配。

③@Conditional

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

关注这三个子注解

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

OnClass

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

代表环境中是否存在Jwts这个类才会注册

OnMissingBean

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

代表环境中不存在这个类型的bean,意思就是有没有HeaderParser这个Bean,一般应用在用户想要自定义bean的时候,不想就是默认的

OnProperty

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

代表配置文件中是否存在指定属性与值,存在才会配置

3.自动配置案例-starter

有一些第三方技术没有提供与SpringBoot整合的起步依赖,但是又是很通用的,例如之前的阿里云的OSS

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

黄色部分定义了该程序所需要的全部依赖,并且引入了上面红色部分的包

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

目的是在项目中导入starter就可以在项目中直接使用AliyunOSSUtils这个工具类的bean,所以需要在autoconfigure中存在一个配置类,使用第三方bean的技术,新建一个方法加了注解bean,并返回一个AliyunOSSUtils对象。

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

对于starter中只在poml文件中引入了autoconfigure的依赖,来进行依赖管理

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

对于autoconfigure,首先在pom文件中引入了oss所需的依赖

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

而在autoconfigure中有一个专门的配置类,来集中分类配置,表示哪些需要交给IOC容器管理,所以有@Configuration的注解代表是配置类
@EnableConfigurationProperties这个注解代表是将AliOSSProperties交给IOC容器管理,下面需要这个bean只需要指定这个参数就行了。

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

对于工具类aliOSSUtils是我们最终需要直接自动配置的bean,由于里面需要AliOSSProperties对象中的值,所以在autoConfigure中需要通过那个注解将AliOSSProperties交给IOC管理,就可以注入spring中yml中的相应的值
JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

最后需要在这个路径下定义这个文件,表示要导入哪些配置类或者类,spring启动后就会加载这个文件,将要导入的配置类交给IOC容器。

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,javaJavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

四、总结

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

Mybatis是操作数据库的,Spring Boot来简化Spring开发的

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

SpringMVC是Spring framework web开发的一部分,是来简化原始servlet程序的
基于传统SSM开发是比较繁琐的,效率比较低

五、Maven高级

1.分模块设计与开发

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

2.继承

①继承关系

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

就是子工程中很多都会用到的依赖可以放到父工程中。
实现就是在子工程pom中定义parent标签

打包方式:

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

由于springboot项目默认父工程为spring-boot-stater-parent,而继承只能单继承所以需要我们继承parent,parent再继承这个spring的工程

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

parent pom文件中:
JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

子工程中:

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

②版本锁定

就是对依赖在父工程中进行统一管理

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

对版本号还可以统一查看修改:
JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

3.聚合

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

六、私服

1.介绍

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

2.资源上传与下载

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

你上传的pom中的<version>指定了版本,会上传到不同仓库

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服,JavaWeb,java

1,3得在maven文件中的settings.xml修改

上传是maven生命周期中的deploy。
下载直接在另外工程中pom中引入需要的依赖文章来源地址https://www.toymoban.com/news/detail-856440.html

到了这里,关于JavaWeb开发06-原理-Spring配置优先级-Bean管理-SpringBoot原理-Maven继承和聚合-私服的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • springboot-配置优先级

    类型 1.properties(三者同时存在,优先级最高) 2.yml 3.yaml(最低) 除此之外,可以在启动配置处修改 在jar包中修改配置属性 1.pom文件需要导入打包的插件 2.使用package命令 3.用打开目录的方式打开 4.在存放jar包的文件夹下打开命令行 5.java -jar jar包名,就能启动springboot项目 6.jav

    2024年02月12日
    浏览(45)
  • nacos配置文件优先级

    当前配置文件如下: 优先级:userservice-dev.yml(当前环境配置) userservice.yml(nacos上的) application.yml(本地的) 扩展配置(extension-configs) 共享配置(shared-configs) 同为扩展配置,存在如下优先级关系:extension-configs[3] extension-configs[2] extension-configs[1] extension-configs[0] 同为共享配置

    2024年02月12日
    浏览(39)
  • springboot 配置文件优先级

    springboot配置文件可以使用properties、yaml,一个系统中最好只使用一种格式,如果在同一个位置使用了properties、yaml,那么properties会覆盖yaml,个人推荐使用yaml,支持结构化,层次更清晰。 如果系统中有application.yml,application-specific.yml,jar包外也有application.yml,application-specif

    2024年02月13日
    浏览(36)
  • SpringBoot 配置文件加载优先级

    最近在使用k8s部署项目的时候,发现Dockerfile文件中的命令后面跟的参数,无法覆盖nacos中的参数,今天有时间正好来整理一下Springboot配置的加载顺序 整理加载顺序第一个肯定看官方文档:https://docs.spring.io/spring-boot/docs/2.2.9.RELEASE/reference/htmlsingle/#boot-features-external-config 看不懂我们直

    2024年02月02日
    浏览(41)
  • SpringBoot项目配置方式及优先级

    说明:SpringBoot支持以下五种方式配置方式,例如将项目的Tomcat端口从8080,更改为9000,可以使用如下方式配置 在启动窗口,鼠标右键,选择“Edit Configurations”,在弹出来的窗口中,在Program arguments,里面填“–server.port=9000”,配置格式为两个小横杠(–)开头 这种方式,可

    2024年02月08日
    浏览(43)
  • SpringBoot启动过程探究及配置文件优先级解析

    如果项目依赖中存在org.springframework.web.reactive.DispatcherHandler,并且不存在org.springframework.web.servlet.DispatcherServlet,那么应用类型为WebApplicationType.REACTIVE 如果项目依赖中不存在org.springframework.web.reactive.DispatcherHandler,也不存在org.springframework.web.servlet.DispatcherServlet,那么应用类型为

    2024年02月09日
    浏览(44)
  • SpringCloud + Nacos配置文件加载顺序和优先级详解

    在微服务架构中,合理地管理和理解配置文件的加载顺序与优先级对于确保应用的稳定性和灵活性至关重要。特别是在使用 Spring Cloud Alibaba Nacos 作为配置中心的场景下,这一点显得尤为重要。本文将基于一个具体的 bootstrap.yml 配置示例,深入探讨这些概念,并介绍如何通过

    2024年03月27日
    浏览(49)
  • 【C++进阶(六)】STL大法--栈和队列深度剖析&优先级队列&适配器原理

    💓博主CSDN主页:杭电码农-NEO💓   ⏩专栏分类:C++从入门到精通⏪   🚚代码仓库:NEO的学习日记🚚   🌹关注我🫵带你学习C++   🔝🔝 和C语言学习期间的学习顺序一样 顺序表,链表过了就是栈和队列 但是栈和队列非常特殊,它的内部结构 并不是靠自己实现的,而是一种 适配

    2024年02月08日
    浏览(42)
  • Nacos配置文件管理、微服务获取Nacos配置文件、热更新、配置共享、配置优先级等

    传统项目中,当我们需要修改配置文件时,需要修改配置文件,停掉服务,重启服务,这样不利于提升用户体验; 而使用Nacos进行项目的配置文件管理,则可以实现热更新配置文件,在Nacos中修改之后,Nacos会通知项目新的配置文件。 添加配置文件 第一步,点击添加配置:

    2023年04月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包