ITOO之底层关系
一、pom.xml文件关系图:
以基础系统中学生这条线为例:
图一:pom.xml文件关系图
图说明:
- 该项目是Maven项目,使用pom.xml文件对项目进行管理
管理类:(非阴影部分)
- Itoo-root(pom.xml)
整个平台的管理包。主要由两部分构成:管理jar包版本号和maven开发用的插件。Jar包版本号:cas、shiro、mongoDB、log4j的版本号都在这里管理Maven开发的插件:maven编译成ear、maven打包
- itoo-base-parent(pom.xml)
管理itoo-tool、itoo-base及一些扩展的公共的jar版本号
- itoo-tool(pom.xml)
提供给使用此框架开发的全部系统的工具包:图表、mongodb、转json……如图:
业务类:(阴影部分)
- itoo-basic-parent(pom.xml)
须要继承itoo-root的pom文件;而且统一管理本系统中用到的各个jar的版本号
- itoo-basic-api(pom.xml)
本包直接引用itoo-base包。api包依赖itoo项目中的底层包itoo-base
- itoo-basic-base(pom.xml)
除继承本项目的parent的pom文件。还须要引用底层itoo-base包
- itoo-basic- student-core(pom.xml)
Service层和Eao层开发使用到的依赖。
比如:itoo-basic-base、itoo-basic-api、itoo-cloud-api的依赖
- itoo-basic-student-web(pom.xml)
Web层发使用到的依赖。比如:itoo-basic-api、itoo-easyui、shiro-cas的依赖
- itoo-basic- student-ear(pom.xml)
把以下这些jar、war的依赖关系都放到ear的pom.xml中,就能够将以下的jar、war都打到一个ear包内。把相互依赖的关系打到一起,jar之间能够互为调用,用来热部署或者打包。
- 00-05是先后的依赖顺序。依次部署:
01--itoo-tool----------平台公共的工具类:
02--itoo-base---------平台公共的BaseEao,BaseEaoIm实现类
03--itoo-basic-api-----自己业务的api,层
04--itoo-basic-core----自己业务的核心包(实现api的接口)
05--itoo-basic-web-----自己业务的web层
符号说明:
- :图一中实线+空三角。表示maven继承。
- 在pom文件里,用parent节点表示,以itoo-base与itoo-base-parent之间的关系为例。在itoo-base下的pom.xml文件里parent节点的代码例如以下:
<parent>
<artifactId>itoo-base-parent</artifactId>
<groupId>com.tgb</groupId>
<version>0.0.1-SNAPSHOT</version>
<relativePath>../itoo-base-parent/pom.xml</relativePath>
</parent>
二、包的关系图
图二:包的关系图
底层:
- Itoo-tool:
供给使用此框架开发的全部系统的工具包:图表、mongodb、转json……包内容:仅仅有pom.xml文件,无详细java代码
- Itoo-base:
底层的方法,是从个子模块中抽出来的公共的方法和实体。
包括:
- BaseEao/BaseEaoImpl:
将直接操作数据库层的公共部分抽象出来,即为itoo-base的Eao层
- BaseBean/BaseBeanImpl:
将业务逻辑层的公共部分抽象出来,即为itoo-base的Service包
- BaseEntity:
将实体中公用的属性提取出来作为公共的实体属性。如:updateTime、createTime……
- Baseutiluuid:
生成uuid的策略。包括32位和64位
子模块(以基础系统模块为例):
- itoo-basic-parent:
须要继承itoo-root的pom文件;而且统一管理本项目中用到的各个jar的版本号包内容:仅仅有pom.xml文件。无详细java代码
- itoo-basic-api:
基础系统的Bean接口和实体以及数据库的持久化文件persistence.xml。当中接口是用来给本系统其它线和其它子模块的Sevice层使用的接口, persistence.xml配置了持久化所需的各种属性,如DataSource.
- itoo-basic-base:
基础系统的获取实体管理器(EntityManager)的部分,这里配置了实体单元名称,且与依据itoo-basic-api下的persistence.xml中实体单元名称一致,进而通过persistence.xml的配置进行持久化.
- itoo-basic- student-core:
基础系统模块中学生这条线的核心包。存放本条线的Eao、Service层,如:StudentEao、StudentEaoImpl、StudentBeanimpl、too-basic-student-web:
基础系统模块中学生这条线的web层。包括如:SpringMVC的controller层、SpringMVC的View层(.jsp文件)、 配置文件:web.xml、spring-mvc.xml、jboss-deployment-structure.xml
符号说明:
- :图二中虚线+实三角。表示包图依赖。
- 在pom文件里,用dependency节点表示,以itoo-base与itoo-tool之间的关系为例,在itoo-base下的pom.xml文件里dependency节点的代码例如以下(注意:图二中没有画出对第三方包的引用):
<dependencies>
<!--java的扩展包 第三方的包 -->
<dependency>
<groupId>javax</groupId>
<artifactId>javaee-api</artifactId>
</dependency>
<!--转json的包 第三方的包 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<!--hibernate包 第三方的包 -->
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
</dependency>
<!--itoo-tool包 本系统的包 -->
<dependency>
<groupId>com.tgb</groupId>
<artifactId>itoo-tool</artifactId>
<version>${project.version}</version>
</dependency>
<!--maven的插件 第三方的包 -->
<dependency>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-javadoc-plugin</artifactId>
</dependency>
<!--日志log4j 第三方的包 -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
</dependency>
</dependencies>
注意:
包图中为什么没有ear包:
八期使用的jboss6没有ear。打包时须要将jar和war分别打包部署。因为我们升级了新的jboss版本号,jar、war分开部署的话,还存在一些问题。我们採用打成EAR包的方式,来公布部署,把我们项目的多个jar,和war包,一次性部署到jboss。从部署上来说提高了部署的效率。开发效率.综上来看:ear是将开发须要的jar和war打包在一起的一个管理工具,所以包图中没有ear包,它不是开发包,是管理包
ITOO之底层关系的更多相关文章
- 06 (OC)* iOS中UI类之间的继承关系
iOS中UI类之间的继承关系 此图可以更好的让你去理解iOS中一些底层的关系.你能够了解以及理解UI类之间的继承关系,你会更加明白苹果有关于底层的东西,更有助于你的项目开发由它们的底层关系,就能更加容 ...
- 【技术引擎——汇聚IT思想之间的碰撞】
转载请注明作者和出处:http://blog.csdn.net/pearyangyang/article/details/40869825 谢谢. 这篇博客将记录我所学习的那些博客大牛,方面以后 ...
- Docker 核心技术之容器与镜像
Docker容器与镜像的关系 容器提交 – docker commit docker commit -h 作用: 根据容器生成一个新的镜像 命令格式: docker commit [OPTIONS] ...
- 网络知识===wireshark抓包出现“TCP segment of a reassembled PDU”的解释(载)
网上胡说八道,众说风云,感觉这篇还算靠谱点. 原文链接:http://blog.csdn.net/dog250/article/details/51809566 为什么大家看到这个以后总是会往MSS, ...
- 毫无基础的人入门Python,Python新手入门教程2
1.6 面向对象和内存分析086.面向对象和面向过程的区别_执行者思维_设计者思维087.对象的进化故事088.类的定义_类和对象的关系089.构造函数__init__090.实例属性_内存分析091 ...
- calcite 概念和架构
1. 前言 Flink使用Calcite构造SQL引擎,那么他们 是怎么合作的? drill, hive,storm 和其他的一干apache 大数据引擎也用calcite , 那么对于同一个sql ...
- 论文笔记:(CVPR2019)Relation-Shape Convolutional Neural Network for Point Cloud Analysis
目录 摘要 一.引言 二.相关工作 基于视图和体素的方法 点云上的深度学习 相关性学习 三.形状意识表示学习 3.1关系-形状卷积 建模 经典CNN的局限性 变换:从关系中学习 通道提升映射 3.2性 ...
- go语言基础之切片和底层数组关系
1.切片和底层数组关系 示例: package main //必须有个main包 import "fmt" func main() { a := []int{0, 1, 2, 3, ...
- SpringData,JPA,MongoDB,Solr,Elasticsearch底层逻辑关系
一: Spring-data底层的接口路基: spring-data : PagingAndSortingRepository-> CrudRepository-> Repository ...
随机推荐
- iOS中bundle的意义
什么是bundle? bundle就是一个文件夹,按照一定标准组织的目录结构.每个iOS APP至少有一个main bundle,这个main bundle包含了app的二进制代码及任何你用到的资源, ...
- 用Parallel.For()和Parallel.For<TLocal>()方法实现并行运行迭代
Parallel类是.NET 4中新增的抽象线程类.如果你开发用的是VS2008或更低版本,那么就直接关闭吧,下面两个示例用了匿名委托,如果不知道匿名委托的语法,那么先去简单了解一下,不然很难理解示例 ...
- delphi win64 DEBUG不能进预设断点的问题
delphi win64 DEBUG不能进预设断点的问题 delphi win64,debug模式下运行,如果含有中文路径,不能进断点,音频跟踪.而同样的代码,DELPHI WIN32却没有这个问题 ...
- 配置Tomcat成为系统服务
国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...
- Oracle学习中,重点是sql语句的学习,而所有的sql语句都要在scott用户下完成。
熟悉这个用户下的四张表,是必要的. 查看所有表名: SELECT * FROM tab; 查看每张表的结构: DESC 表名称: 1.部门表:dept no 名称 类型 描述 1 DEPTNO NU ...
- 算法:堆排序(Heap Sort)
备注 考虑到 Heap 的特性,很容易想到将其用作排序的用处,为了提高效率需要适当的改进一下,如:in place remove 和 in place move down. 代码 using Syst ...
- UIScrollView视差模糊效果
UIScrollView视差模糊效果 效果 源码 https://github.com/YouXianMing/Animations // // ScrollBlurImageViewControll ...
- 《iOS开发指南:从零基础到App Store上架(第2版)》
<iOS开发指南:从零基础到App Store上架(第2版)> 基本信息 作者: 关东升 丛书名: 图灵原创 出版社:人民邮电出版社 ISBN:9787115348029 上架时间:201 ...
- 【转载】Hybrid APP了解
原文:http://uikoo9.com/blog/detail/hpp 不错的hybrid app框架:http://www.dcloud.io/case/#group-1 HPP hybirdAp ...
- mahout源码KMeansDriver分析之四
昨天说到为什么Configuration没有设置conf.set("mapred.job.tracker","hadoop:9000")仍然可以访问hdfs文件 ...