spring-Bean管理-springboot原理-Maven高级

spring-Bean管理-springboot原理-Maven高级

    • 配置优先级
    • Bean管理
        • 1.获取bean
        • 2.bean作用域
        • 3.第三方bean
    • SpringBoot原理
    • Maven高级
        • 1.分模块设计与开发
        • 2.继承与聚合
        • 3.私服
          • 1.介绍
          • 2.资源上传与下载

配置优先级

spring-Bean管理-springboot原理-Maven高级_第1张图片
spring-Bean管理-springboot原理-Maven高级_第2张图片

优先级(低→高)
application.yaml(忽略)
application.yml
application.properties
java系统属性(-Dxxx=xxx)
命令行参数(–xxx=xxx)

Bean管理

1.获取bean

spring-Bean管理-springboot原理-Maven高级_第3张图片

上述所说的【Spring项目启动时,会把其中的bean都创建好】还会受到作用域及延迟初始化影响,这里主要针对于默认的单例非延迟加载的bean而言。

2.bean作用域

spring-Bean管理-springboot原理-Maven高级_第4张图片

可以通过@Scope注解来进行配置作用域:@Scope( “prototype”)
默认singleton的bean,在容器启动时被创建,可以使用@Lazy注解来延迟初始化(延迟到第一次使用时)。prototype的bean,每一次使用该bean的时候都会创建一个新的实例。
实际开发当中,绝大部分的Bean是单例的,也就是说绝大部分Bean不需要配置scope属性。

3.第三方bean

spring-Bean管理-springboot原理-Maven高级_第5张图片

SpringBoot原理

SpringBoot的自动配置就是当spring容器启动后,一些配置类、bean对象就自动存入到了IOC容器中,不需要我们手动去声明,从而简化了开发,省去了繁琐的配置操作。
spring-Bean管理-springboot原理-Maven高级_第6张图片
spring-Bean管理-springboot原理-Maven高级_第7张图片

Maven高级

1.分模块设计与开发

将项目按照功能拆分成若干个子模块,方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。(将项目分成若干个maven模块,引入maven依赖相互调用)

spring-Bean管理-springboot原理-Maven高级_第8张图片

2.继承与聚合

spring-Bean管理-springboot原理-Maven高级_第9张图片

jar:普通模块打包,springboot项目基本都是jar包(内嵌tomcat运行)
war:普通web程序打包,需要部署在外部的tomcat服务器中运行
pom:父工程或聚合工程,该模块不写代码,仅进行依赖管理

spring-Bean管理-springboot原理-Maven高级_第10张图片

若父子工程都配置了同一个依赖的不同版本,以子工程的为准。

spring-Bean管理-springboot原理-Maven高级_第11张图片

< dependencies >是直接依赖,在父工程配置了依赖,子工程会直接继承下来。
< dependencyManagement >是统一管理依赖版本,不会直接依赖,还需要在子工程中引入所需依赖(无需指定版本)

spring-Bean管理-springboot原理-Maven高级_第12张图片
spring-Bean管理-springboot原理-Maven高级_第13张图片

作用:
聚合 用于快速构建项目
继承 用于简化依赖配置、统一管理依赖
相同点:
聚合与继承的pom.xml文件打包方式均为pom,可以将两种关系制作到同一个pom文件中
聚合与继承均属于设计型模块,并无实际的模块内容
不同点:
聚合是在聚合工程中配置关系,聚合可以感知到参与聚合的模块有哪些
继承是在子模块中配置关系,父模块无法感知哪些子模块继承了自己

3.私服

1.介绍

spring-Bean管理-springboot原理-Maven高级_第14张图片

2.资源上传与下载

spring-Bean管理-springboot原理-Maven高级_第15张图片
使用私服,需要在maven的settings.xml配置文件中,做如下配置:

  1. 需要在 servers 标签中,配置访问私服的个人凭证(访问的用户名和密码)

    <server>
        <id>maven-releasesid>
        <username>adminusername>
        <password>adminpassword>
    server>
        
    <server>
        <id>maven-snapshotsid>
        <username>adminusername>
        <password>adminpassword>
    server>
    
  2. mirrors 中只配置我们自己私服的连接地址(如果之前配置过阿里云,需要直接替换掉)

    <mirror>
        <id>maven-publicid>
        <mirrorOf>*mirrorOf>
        <url>http://192.168.150.101:8081/repository/maven-public/url>
    mirror>
    
  3. 需要在 profiles 中,增加如下配置,来指定snapshot快照版本的依赖,依然允许使用

<profile>
    <id>allow-snapshotsid>
        <activation>
        	<activeByDefault>trueactiveByDefault>
        activation>
    <repositories>
        <repository>
            <id>maven-publicid>
            <url>http://192.168.150.101:8081/repository/maven-public/url>
            <releases>
            	<enabled>trueenabled>
            releases>
            <snapshots>
            	<enabled>trueenabled>
            snapshots>
        repository>
    repositories>
profile>
  1. 如果需要上传自己的项目到私服上,需要在项目的pom.xml文件中,增加如下配置,来配置项目发布的地址(也就是私服的地址)

    <distributionManagement>
        
        <repository>
            <id>maven-releasesid>
            <url>http://192.168.150.101:8081/repository/maven-releases/url>
        repository>
        
        
        <snapshotRepository>
            <id>maven-snapshotsid>
            <url>http://192.168.150.101:8081/repository/maven-snapshots/url>
        snapshotRepository>
    distributionManagement>
    
  2. 发布项目,直接运行 deploy 生命周期即可 (发布时,建议跳过单元测试)

你可能感兴趣的:(spring,spring,boot,maven,java,mybatis)