框架模块化开发规范_第1页
框架模块化开发规范_第2页
框架模块化开发规范_第3页
框架模块化开发规范_第4页
框架模块化开发规范_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、20158建华船Hi地触航IFqSinoBestInformationTechnologyLtd.更新历史编写人日期版本号变更内容萧海生2015-08-310.01初次编写前言模块化要做什么?模块化的技术支持模块化项目目录结构目录结构结构说明文件配置文件配置依赖与引用参数配置数据库检查核心模块核心模块作用启动检查工具类日志支持附录文件编辑问题、乙、1.前言模块化要做什么?模块化的目标是将应用的所有内容打到一个包中(包括类文件、页面文件、文件、文件以及配置文件等)。每个模块都以一个包的形式存在,这样模块的粒度就可以随意掌握,以利于框架的管理和版本升级。模块化的技术支持口Servlet3.0模块化

2、支持从开始支持各应用的模块化,也就是说从从开始支持各应用的模块化,也就是说从开始,我们可以把各应用单独拿出来进行开发,之后把它们打成对应的包放到主项目中就可以了。(包括各种资源文件以及的配置都可以打包到中)模块打成的包的内容的文件结构要求是这个样子的:I-META-INF|-web-fragment.xml1-resources|-jsp、图片等,相当于web的根目录|-class文件和类路径下的文件其中文件是必须要的。上述目录结构就相当于在我们的类路径下有一个目录,该目录下有文件及包含、图片等资源的目录。web-fragment.xml文件的作用与应用下的文件的作用是相似的,在文件中进行配置

3、。止匕外,它们文件的根元素是文件中进行配置。止匕外,它们文件的根元素是,的文档结构也非常的相似。所不同的是所使用的也是相应的,配置如下:在文件中我们可以通过元素来指定当前模块的名称,用元素来指定当前模块相对的加载顺序。元素下面可以指定或元素,而和元素下又可以指定和元素。指定的示例如下。在其他模块之前加载ordering)/ordering)在指定模块之后加载ordering)模块名称/ordering)除了可以在文件里面通过元素定义当前模块的加载顺元素指定各模块的加载顺文件中指定的加载顺序具序外,我们还可以在元素指定各模块的加载顺文件中指定的加载顺序具序。而且文件中指定的加载顺序比有更高的优先

4、级。如:absolute-ordering)name)module1/name)module2module3/absolute-ordering)更多内容请参考规范。的模块,其中含有一个S其代码如下所示:接下来我们来展示一个创建的模块,其中含有一个S其代码如下所示:publicclassModulelServletextendsHttpServletprivatestaticfinallongserialVersionUID=1L;OverrideprotectedvoiddoGet(HttpServletRequestreq,HttpServletResponseresp)throwsSer

5、vletException,lOExceptionthis.doPost(req,resp);OverrideprotectedvoiddoPost(HttpServletRequestreq,HttpServletResponseresp)throwsServletException,lOExceptionreq.getRequestDispatcher(/module1.jsp).forward(req,resp);接着我们在类路径下创建一个文件夹,在该文件夹下创建一个目录,在目录下创建一个文件。接着在目录下创建一目录,在目录下创建一个文件。接着在目录下创建一文件,其内容如下:4.modu

6、le1ordering)/ordering)servlet-name)module1Servletservlet-class)com.xxx.Module1Servletservlet-name)module1Servlet/servlet/module1之后我们把该项目打成一个包就可以把它作为一个加到其它应用中,在其它应用中使用了。放到其它应用中后,我们通过访问就可以访问到我们模块中定义的了。模块的目录结构如下:*modulel17src/main/jiavasrc/main/resources一小META-INFresources国modulel.jsp|x|web-fragment.xm

7、Isrc/test/java1.2.2Maven是个优秀的项目管理及构建工具。由于模块化开发的最终产出物为包,使用进行项目管理可以很方便的将项目打包成包。在进行模块化开发的时候模块间的依赖关系是非常复杂的,而的项目依赖管理功能是非常强大的,可以很好的帮助我们管理模块间的依赖关系。综合以上原因,在进行模块化开发时采用作为项目管理工具。2.运行环境要求软件版本说明操作系统Windows/linuxJdk=1.6应用服务器Tomcat=7.0支持Servlet3.0规范Weblogic=12c的应用服务器。3.模块化项目目录结构模块化开发采用maven作为项目管理工具,模块化项目必须遵循如下目录结构

8、。目录说明项目根目录配置文件项目主体根目录源代码目录所需资源目录配置文件根目录配置文件根目录E相当于应用目录,存放、s图片、等资源文件项目测试根目录测试代码目录测试资源所需目录项目输出根目录目录结构如下图所示:?Hnisi-Fw-Demob召:src/main/java2src/main/res-o-urces巨?configdemo=perties=corfig-code-product,propeirties=corfig-code-t号st,properties=peirties官IpeirtiesQMETA-INFresources|岸WEB-IINF国test.jsp糜MANIFES

9、T.MF囱web-fragment.xmIspring5?demo!|XjapplicstionCo-ntext-demo-service.xmIsrc/testavasrc/tesVresources-DSiMav&nDependenciesb回JIRESystemLibraryjdkl.6.O_24b号SFC|巨?targetm|po-m.xml1目录结构结构说明/src/main/java该目录为源代码目录。模块的包路径必须以模块简称开头。如模块类的包路径为:/src/main/resources/config该目录为配置文件目录。为了防止模块间配置文件的冲突,配置文件必须存放在该目录下

10、对应模块的目录内。如模块的配置文件存放路径为:/src/main/resources/spring该目录为配置文件目录。为了防止模块间文件的冲突,配置文件必须存放在该目录下对应模块的目录内。如模块的配置文件存放路径为:/src/main/resources/META-INF/resources根据Servlet3.0规范,该文件夹相当于web应用的根目录。主要用于存放web应用资源,如jsp、html、css、js、image等资源文件。MAINFEST.MF文件配置MANIFEST.MF文件位于/src/main/resources/META-INF目录下。打包成jar模块包时该文件位于ja

11、r包的META-INF目录下。该文件为jar包的描述文件。为了区别普通jar包与模块化jar包的区别,需要在MANIFEST.MF文件中加入如下配置信息,其中红色部分的属性是必须的(MANIFEST.MF文件的编辑问题请参考附录9.1章节)。r-TOC o 1-5 h zManifest-Version:1.0;Bundle-Type:模块类型,必须为:Hnisi|BBundle-Name:模块名,与pom.xml中的artifactId一致!BBundle-Version:模块版本号,与pom.xml中的version一致!IBundle-Description:模块描述;iBundle-V

12、ersion-Compatible:模块兼容的最低版本号;Require-Bundle:依赖的模块,写法为:模块1;模块1版本号,模块2;模块2版本号:;Require-Table:S_USER,S_FRAMEWORK_MENU;;Require-View:V_TODO_LIST例子:Manifest-Version:1.0Bundle-Type:HnisiBundle-Name:Hnisi-Fw-DemoBundle-Version:Bundle-Description:测试模块Bundle-Version-Compatible:Require-Bundle:Hnisi-Fw-Code;,H

13、nisi-Fw-Dao;Require-Table:S_USER,S_FRAMEWORK_MENURequire-View:V_TODO_LISTpom.xml文件配置pom.xml文件为maven配置文件,具体配置可参考maven相关文档。为了将MANIFEST.MF文件打包进jar包中,需要在pom.xml文件中加入如下配置。org.apache.maven.pluginsmaven-jar-plugin2.6configuration)false;srcmainresourcesMETA-INFMANIFEST.MF/configuration);6.依赖与引用一个模块除了包含java类

14、之外同时还包含了各种接口、springbean、service服务以及页面文件、JS文件、CSS文件、图片文件等。由此可见模块间的依赖是非常复杂的,除了最常见的java类依赖外还包含了接口、服务、资源文件等之间的相互依赖。这里我们只对模块间的依赖关系进行管理,开发过程中通过maven进行依赖管理。运行过程中通过MANIFEST.MF文件的Require-Bundle配置属性进行定义,然后由核心模块进行启动时检查。配置如下。Manifest-Version:1.0Bundle-Type:模块类型,必须为:HnisiBundle-Name:模块名,与pom.xml中的artifactId一致Bun

15、dle-Version:模块版本号,与pom.xml中的version一致Bundle-Description:模块描述Bundle-Version-Compatible:模块兼容的最低版本号Require-Bundle:依赖的模块,写法为:模块1;模块1版本号,模块2;模块2版本号Require-Table:S_USER,S_FRAMEWORK_MENURequire-View:V_TODO_LIST例:rManifest-Version:1.0Bundle-Type:HnisiBundle-Name:Hnisi-Fw-DemoBBundle-Version:!Bundle-Descript

16、ion:测试模块Bundle-Version-Compatible:1Require-Bundle:Hnisi-Fw-Code;,Hnisi-Fw-Dao;;Require-Table:S_USER,S_FRAMEWORK_MENU:Require-View:V_TODO_LIST7.参数配置模块的一些固定的参数可配置到配置文件中。配置文件位于/src/main/resources/config/目录下。具体配置文件及说明如下。配置文件名说明模块简称配置开发、测试和生产环境都相同的参数模块简称配置开发环境需要的参数模块简称配置测试环境需要的参数模块简称配置生产环境需要的参数模块简称配置日志的参

17、数WEB应用同样需要包含以上这些配置文件,WEB应用的配置文件直接存放到config目录下。WEB应用的配置文件必须包要配置参数。核心模块通过参数加载相应的配置文件。参数说明如下。参数配置说明开发模式,加载文件测试模式,加载文件生产模式,加载文件8.数据库检查.核心模块核心模块作用口初始化/生命周期管理核心模块启动阶段(_/依赖检查模块间的依赖检查/生命周期管理核心模块V启动检查广运行阶段v7据库版本检查口运行阶段;工具类I明可支持支持每个模块都有一个配置文件核心模块的主要作用如下:进行模块依赖检查进行数据库版本检查提供工具类支持提供日志支持第三方框架依赖配置(开发阶段,由maven配置)启动

18、检查口启动检查包括模块依赖检查和数据库检查。模块依赖检查模块依赖检查主要是在系统启动的过程中,通过MANIFEST.MF文件配置的依赖关系检查启动模块依赖的其他模块是否存在。如果不存在则进行提示询问是否继续启动应用。数据库检查核心模块在系统启动的过程中进行提供数据库的相关检查支持。具体请参考第7章数据库版本检查。工具类核心模块为其他模块提供常用的工具类。方便其他模块的调用。日志支持核对模块为其他模块提供日志支持,主要是对log4j的支持。由于不同模块可能存在不同的日志输出需求,因此核心模块支持每个模块都可以有自己的日志配置文件。每个模块的日志配置文件存放路径为:/src/main/resources/config/模块简称/perties.附录MANIFEST.MF文件编辑问题MANIFEST.MF文件有着严格的格式要求,甚至一个空格都会引起错误。因此在编写MANIFEST.MF文件时需要严格遵循如下格式说明。MANIFEST.MF格式说明.文件中的内容以键值对的形式出现,键值对之间采用冒号+空格”进行分隔(注意:冒号后的空格必须有,否则格式有错误).文件每行最多72个字符,可以分多行写,但是在行的末尾必须加上空格符作为续行符(注意:末尾的续行符不能少).文件的最后必须要空两行,并且这两行都必须顶格.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论