• Maven 整合SSH框架


    1. 传递依赖冲突

    1.1 传递依赖:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C是A的传递依赖;
    A(项目)又依赖D,D依赖C(1.2版本),此时,C有两个版本,产生冲突;
    1.2 Maven 的调解原则
    - 第一声明者优先原则: 谁先定义,就用谁的传递依赖;
    - 路径近者优先原则: 直接依赖级别高于传递依赖;
    1.3 排除依赖

    1.4 版本锁定(推荐)

    2. 整合SSH框架

    2.1 SSH 配置文件加载过程

    3. 项目拆分

    3.1 对现在已有 maven ssh 项目进行拆分,拆分思路: 将DAO层代码和配置文件全部提取到一个表现上独立

    的工程中;另外,也将 service, action 拆分;

    • ssh-parent(父工程)
      • ssh-dao(子模块)
      • ssh-service
      • ssh-web

    3.2 创建父工程

    • Maven Project
    • 包的类型: pom
    • 父工程目录结构:只有 pom.xml,父工程不进行编码;
    • 项目需要的依赖信息,在父工程中定义,子模块继承;
    • 将各个子模块聚合到一起;

    3.2.1 将父工程发布到本地仓库(Maven install)
    • service,dao过程也会发布到本地仓库,如果本地仓库中没有父工程,发布的 service 工程会报错;

    3.3 创建子模块 ssh-dao

    • Maven Module
    • 包的类型: jar
    • 包含dao层代码和配置文件
    • 将spring的配置文件applicationContext.xml进行拆分:
      • applicationContext-basic.xml: 存放dataSource,sessionFactory和事务管理的配置;
      • applicationContext-dao.xml: 存放dao对象的配置;
    • 发布到本地仓库: maven install;

    3.4 创建子模块 ssh-service

    • 在service工程 pom.xml 文件中添加 ssh-dao 的依赖;

    3.5 创建子模块 ssh-web

    • 包的类型: war,因为需要处理页面;
    • 需要导入 struts.xml 配置文件;
    • 需要导入 web.xml 配置文件以及页面;
      • "classpath:applicationContext-.xml"

    3.6 单元测试

    • classpath:spring/applicationContext-*.xml: 加载本项目中的配置文件;
    • classpath*:spring/applicationContext-*.xml: 既要加载本项目中配置文件,也要加载jar包中配置文件

    3.7 传递依赖范围

    3.8 运行

    1. 方式一:运行父工程,父工程将各个子模块聚合到一起; 将 ssh-web 项目打成war包发布到 tomcat;
    2. 方式二:直接运行 ssh-web 项目;
    3. 方式三:自己手动部署到 tomcat 上;

    参考资料

  • 相关阅读:
    前端必须掌握的 docker 技能(2)
    前端必须掌握的 docker 技能(1)
    异步 map 和模块打包
    import 和组件库按需引入
    babel-node 和 nodemon
    linux和mac 终端代理
    yarn.lock 是干什么的
    pwa 总结
    设计模式(5): vue 不监听绑定的变量
    django+celery+redis应用
  • 原文地址:https://www.cnblogs.com/linkworld/p/7755311.html
Copyright © 2020-2023  润新知