|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
java主要分三块,j2se:java的基础核心语言。j2me:java的微型模块,专门针对内存小,没有持续电源等小型设备。j2ee:java的企业模块,专门针对企业数据库服务器的连接维护。
本系列“SpringRoo简介”的SpringRoo简介,第3部分:开辟SpringRoo的附加组件会商了SpringRoo附加架构,和怎样利用addoncreate命令创立国际化的、复杂的附加组件。本文次要存眷SpringRoo撑持的其他两品种型的附加组件,即初级附加组件和包装器附加组件。倡议您在入手下手浏览本文之前先浏览第3部分的文章。
初级附加组件的简介
初级附加组件同意SpringRoo实行复杂附加组件所能实行的统统操纵,比方,使用依附干系或插件更新MavenPOM文件,更新或增加设置文件,加强现有的Java范例,并利用AspectJITD引进新的Java范例。增加源代码的功效使初级附加组件比一切其他附加组件都更壮大。在创立一个SpringRoo初级附加组件之前,请先研讨一下SpringRoo供应的现有初级附加组件。
利用中的初级附加组件
今朝利用的一个初级附加组件是JPA,它能实行与耐久性相干的事情,即为数据库增加撑持并创立新的实体。要检察此组件的运转情形,请翻开Rooshell,并在清单1中实行此命令。在本文中,我利用的是SpringRooV1.2.0.M1。
清单1.JPA示例- project--
- topLevelPackagecom.dw.demo--projectNameentity-demo
- jpasetup--databaseFIREBIRD--providerHIBERNATE
- entity--class~.domain.Book
复制代码 jpasetup和entity命令均同等于一个名叫org.springframework.roo.addon.jpa的初级附加组件。Rooshell上的jpasetup和entity命令的输入同意明白地对复杂附加组件和初级附加组件举行分别。清单2显现了JPAsetup命令的输入。
清单2.JPAsetup命令的输入- CreatedSRC_MAIN_RESOURCES/META-INF/spring/database.properties
- UpdatedROOT/pom.xml[addeddependencies...]
- UpdatedSRC_MAIN_RESOURCES/META-INF/spring/applicationContext.xml
- CreatedSRC_MAIN_RESOURCES/META-INF/persistence.xml
复制代码 jpasetup命令的输入显现,它正在实行设置功效,比如,在pom.xml中增加依附干系、更新SpringapplicationContext.xml,和创立特定于耐久性的persistence.xml文件。假定JPAsetup命令相称于一个复杂的附加组件,由于它不创立或更新Java源代码。在与下面显现的设置类似的场景中利用一个复杂的附加组件。
清单3显现了entity命令的输入。
清单3.entity命令的输入- CreatedSRC_MAIN_JAVA/com/dw/demo/domain
- CreatedSRC_MAIN_JAVA/com/dw/demo/domain/Book.java
- CreatedSRC_MAIN_JAVA/com/dw/demo/domain/Book_Roo_Configurable.aj
- CreatedSRC_MAIN_JAVA/com/dw/demo/domain/Book_Roo_Jpa_Entity.aj
- CreatedSRC_MAIN_JAVA/com/dw/demo/domain/Book_Roo_Entity.aj
- CreatedSRC_MAIN_JAVA/com/dw/demo/domain/Book_Roo_ToString.aj
复制代码 该输入显现创立了一个名为Book.java的Java文件和四个*.aj文件。辨认初级附加组件的黄金法例是天生Java文件和/或*.aj文件,好像entity命令一样。这些*Roo_*.aj文件被称为范例间声明(Inter-typeDeclarations,ITD)。ITD同意一个范例(一个方面)声明另外一个范例,也就是说,您能够经由过程增加办法和字段大概变动它们的范例条理来修正任何范例的静态布局。Roo利用ITD作为代码天生构件,并办理其全部性命周期。ITD同意Roo在独自的编译单位中天生代码,可是没法将他们组合到不异的编译类中。
检察entity命令的输入后,请思索一下怎样经由过程SpringRoo天生这些构件(.java和.aj文件)。拜见清单4中的一个Book.java文件样例。
清单4.Book.java文件- packagecom.dw.demo.domain;
- importorg.springframework.roo.addon.entity.RooEntity;
- importorg.springframework.roo.addon.javabean.RooJavaBean;
- importorg.springframework.roo.addon.tostring.RooToString;
- @RooJavaBean
- @RooToString
- @RooEntity
- publicclassBook{
- }
复制代码 除类中的正文之外,Java文件看起来很一般。看一下正文和.aj文件的称号,明显,一些正文相称于.aj文件增加的函数。比方,RooToString相称于Book_Roo_ToString.aj文件并增加了toString()办法。RooEntity相称于Book_Roo_Entity.aj、Book_Roo_Jpa_Entity和与耐久性相干的一些办法。我们临时将其他的内容先放一放。要懂得如何使用正文天生ITD,请先懂得SpringRoo怎样供应初级附加组件功效。
Rooshell启动后,会扫描一切的类,并注册一切完成CommandMarker接口的类。CommandMarker接口会告诉Roo,这些类将界说该附加组件能实行的命令。
一切的这些初级附加组件会向SpringRoo供应的OSGi运转时注册其服务。这些服务指定了触发代码天生的前提。对于一切的初级附加组件,触发点就是一个正文。比方,假如Java范例具有RooToString正文,则只会触发针对toString()办法天生的初级附加组件。这类情形也合用于其他正文。
一旦利用了entity--class~.domain.Book,附加组件就会创立一个带正文的名为Book.java的Java文件。其他的附加组件会在Java类具有这些正文时或具有为它们编写的.aj文件时触发。
在创立本人的初级附加组件时,您会瞥见更多的相干申明。
org.springframework.roo.addon.jpa附加组件只是SpringRoo所供应的初级附加组件的一个示例。其他的初级附加组件还包含GWT、把持器、JSON等。SpringRoo1.2.0刊行版本还包括两个更初级的附加组件,即addon-equals和addon-jsf。addon-equals附加组件供应了一个实体的equals和hashcode办法的完成,addon-jsf则在SpringRoo使用程序中供应JSF撑持。要玩转最新的SpringRoo快照,请构建SpringRoo代码或从SpringRoo存储库中下载逐日快照。
在MyEntityClass中包括compareTo()办法
值对象或实体一般是完成java.lang.Comparable接口所必须的,它们还供应了compareTo()办法的完成。Comparable接口在完成它的每个类的对象长进行完整排序。当您完成Comparable时,能够实行以下操纵:
挪用java.util.Collections.sort和java.util.Collections.binarySearch
挪用java.util.Arrays.sort和java.util.Arrays.binarySearch
将对象用作java.util.TreeMap中的键
将对象用作java.util.TreeSet中的元素
在本文中,您将构建一个初级的附加组件,该组件将为您在使用程序中创立的实体提供了compareTo()的完成。由于您想在本人的使用程序中增加Java代码,以是必需创立一个初级附加组件。
<p>
C++编译的是本地码,优点是启动快,而且可以精确控制资源因此可以开发很高效的程序.缺点是编程麻烦,而且容易留下安全隐患.跨平台靠源代码在各个平台间分别编译(一处编写到处编译) |
|