springboot的入门

一、敏捷开发
敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
我们会想一下我们的一阶段项目,发现有问题: 如果某个人的代码出问题 整个项目都崩了。
其实敏捷开发可以简单理解成 就是利用maven,构建父子项目
二、敏捷开发的优势
我们反过来想如果不进行敏捷开发maven的父子工程会有什么坏处

  1. 业务耦合性高,体积大
    所有业务都在一个项目里面,体积庞大,如果变更频繁,无法快速满足新业务的上线和持续交付
  2. 部署麻烦
    开发时,一处修改,需重启整个服务,启动耗时长
    一处小改动,需重启整个项目重新打包部署,部署周期时间长
  3. 水平扩展性差
    由于是单体应用不能对高并发的场景进行单独部署,从而造成服务响应慢
  4. 稳定性差
    在某一个时段,一个高并发的请求会导致真个服务宕机,轻则响应慢,重则对外停止访问,给客户造成不可估计的损失
  5. 代码维护成本高
    业务在不断的更新迭代,源代码也正在不断的更新迭代,源码的作者也是换了一批有一批,造成后者对前者写的代码很难理解和维护,更恐怖的是还有很多地方是重复代码
    三、父子项目的拆分方式
    1.横向拆分,即按照不同的业务功能,拆分成不同的微服务,如天气数据采集、数据存储、天气查询等服务,形成独立的业务领域微服务集群
    2.纵向拆分,即把一个业务功能里的不同模块或组件进行拆分。例如,把公共组件拆分成独立的基础设施,下沉到底层,形成相对独立的基础设施层
    四、项目搭建
    A 创建一个maven的quickstart [作为父项目使用]
    B 将父项目src的内容全部干点 并且pom文件的 packaging改成pom父项目 war web项目 jar java项目默认
    C 在父项目中右键 选择new 选择module 创建子项目
    注意 我们创建完成子项目之后 在子项目中的pom文件里面有一个配置 标明当前项目的父项目是谁
 <parent>
        <artifactId>hahaha</artifactId>
        <groupId>com.aaa.cainilove</groupId>
        <version>1.0-SNAPSHOT</version>
    </parent>

同时在总项目的pom中也有一个配置

 <modules>
    <module>hahaha-admin</module>
  </modules>

D 导入依赖

xxx-commom  公共模块
xxx-system service mapper entity 
xxx-admin 控制层

1 如果多层都用到 则再基层导入 其他项目可以依赖传递
2 有的项目只有某一层用到 我们就在这一层导入 并且要阻断传递

   <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <optional>true</optional>
        </dependency>

E 项目清单
我们现在导包的方式 如果项目构建好了 将来有个新手接手了咱的项目,此时他可能不知道当前项目导了哪些包?
所以我们需要在父项目中构建项目清单
但是并不是在父项目的pom中写

<dependencies>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-context</artifactId>
            <version>5.3.12</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-web</artifactId>
            <version>5.3.12</version>
        </dependency>

        <dependency>
            <groupId>org.springframework</groupId>
            <artifactId>spring-webmvc</artifactId>
            <version>5.3.12</version>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <version>1.18.20</version>
            <optional>true</optional>
        </dependency>

    </dependencies>

这样写 代表导入 换句话说 就是所有工程都导入这些包 这是不合适的
所以我们需要这样配置

<properties>
      <spring.version>5.3.12</spring.version>
      <lanbok.version>1.18.20</lanbok.version>


  </properties>

  <dependencyManagement>
    <dependencies>

      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-context</artifactId>
        <version>${spring.version}</version>
      </dependency>

      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-web</artifactId>
        <version>${spring.version}</version>
      </dependency>

      <dependency>
        <groupId>org.springframework</groupId>
        <artifactId>spring-webmvc</artifactId>
        <version>${spring.version}</version>
      </dependency>
      <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <version>${lanbok.version}</version>
        <optional>true</optional>
      </dependency>
    </dependencies>
  </dependencyManagement>

添加dependencyManagement 之后 代表导入这些jar包 但是并没有传递给每个子项目,也就是说 哪个子项目中需要 哪个再单独导入
并且子项目中 不需要再写版本号

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

回首以是故人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值