zoukankan      html  css  js  c++  java
  • maven

    Maven

    摘要:在会使用maven的基础上进行了补充说明。

    maven的补充说明:

    关于maven,主要解决了两个问题:层次依赖问题、jar包管理问题

      层次依赖:当使用了springboot以后,我们的开发可能是将maven项目进行了拆分,具体在下面的springboot里细说,

      当service需要调用Mapper(dao层)的时候,由于两个层被拆分成两个工程了,所以出现了跨域的问题,为了解决跨域的

      问题,则建立工程依赖,即在service工程中的xml得依赖里引入Mapper,这就是层次上的依赖;

      jar包管理问题:当两个层次都引入某个jar包时,就出现了jar冗余,我们只需要让父工程引入此jar包,Mapper继承此jar包,

      由于service依赖Mapper,所以service不用再引入此jar包也可以使用。

    使用maven的父子工程的原因:

    便于分布式的开发!

     父工程:所有的maven的父工程都是来管理jar包的,里面不会出现任何一行实质性的代码,且不再需要src这个文件。

    图上的Mapper(dao)、model(entity)、service、web(controller)等是在建好父工程后,在父工程的基础上新建的maven项目,属于parent的子工程,在父工程的pom.xml中引入的jar包,

    子工程都能用。并且我们能够看到在父工程的pom.xml里面有<modules>标签,里面列举了所有的子工程。

    父子工程的特点:

      1、父工程并没有实质性的内容,所有的jar包都在里面,也就是说只是管理jar包,不参与任何逻辑。

      2、在父工程中拥有很多字模块,每一个子模块都代表了不同的包。而且父工程中拥有的jar包都会被子工程所继承。

      3、有些jar包在父工程中引入了,但是部分模块不需要这些jar包,如果这些模块去加载那些用不到的jar包,无疑会影响项目的运行速度,

        针对此问题,我们可以在父工程中使用<dependencyManagement>标签来管理jar包,被<dependencyManagement>管理的jar包不会被子工程所继承,

        如果子工程需要用的时候,可以在子工程中的xml文件中进行重写此依赖,但是不能携带版本号,否则相当于是从中央仓库上进行了下载。

     注意:在子工程的model(entity)层写实体类时,实体类的标准:

        1、实现序列化接口

        2、重写hashCode和equals方法(选择idea default)

        3、重写toString方法

        4、get和set方法,

        5、在实体类中所有属性的类型都要求是包装类型,不能使用基本数据类型,因为包装类型可以防止空指针异常(无值的时候自动会有个null);

    使用工程依赖建立层级依赖的例子:

      eg:在service工程中引入Mapper工程的依赖:这样service工程就会依赖于mapper工程的支持

      

    乾坤未定,你我皆是黑马
  • 相关阅读:
    定时任务(收集)
    命令学习(收集)
    查看进程运行时间
    Linux 中挂载 ISO 文件
    9.已知三边计算三角形的面积公式
    8.输入一个大写字母,要求小写字母输出
    1.输出三个数中的最大值
    2.依次从大到小输出三个数
    3.计算1+2+3+....100=?
    4.计算1*2*3*4........*100=?
  • 原文地址:https://www.cnblogs.com/liuqijia/p/11360705.html
Copyright © 2011-2022 走看看