java标本库系统代码.docx
- 文档编号:30685265
- 上传时间:2023-08-19
- 格式:DOCX
- 页数:22
- 大小:222.49KB
java标本库系统代码.docx
《java标本库系统代码.docx》由会员分享,可在线阅读,更多相关《java标本库系统代码.docx(22页珍藏版)》请在冰豆网上搜索。
java标本库系统代码
java标本库系统代码
部门:
xxx
时间:
xxx
制作人:
xxx
整理范文,仅供参考,可下载自行修改
标本库管理系统是由java编写的一套软件系统,它由两部分组成:
1、web部分,客户端是ie6.0浏览器
2、RCP部分,用于集中管理标本库
一下是Web部分的相关代码及配置文件说明:
Web部分基于SHH技术(Struts、Spring、Hibernate>,并且遵循MVC设计模式,所以相应的代码也清晰地分成java简单原始类、数据库操作类(DAO层>、业务逻辑类(business>,整个web系统有很多部分组成,包括20个包以及相关配置文件、jsp页面、javascript脚本等等。
下面是代码展示:
b5E2RGbCAP
样本类型枚举类:
packageorg.scbit.tissuebank.cfg。
/**
*
*@authorwuyifei
*@version1.0.0
*/
publicenumTissueStatEnum{
DISDOCIATION("dissociation">,//未入库
STORED("stored">,//已入库
RESERVE("reserve">,//已预定
LENDED("lended">,//已出借
USEUP("useup">。
//已耗尽
privateStringname。
privateTissueStatEnum(Stringname>{
this.name=name。
}
publicStringgetName(>{
returnname。
}
}
持久化类:
packageorg.scbit.tissuebank.utils。
importjava.io.BufferedReader。
importjava.io.File。
importjava.io.FileNotFoundException。
importjava.io.FileReader。
importjava.io.IOException。
importjava.io.PrintWriter。
importjava.util.regex.Matcher。
importjava.util.regex.Pattern
importmons.cli.BasicParser。
importmons.cli.CommandLine。
importmons.cli.CommandLineParser。
importmons.cli.HelpFormatter。
importmons.cli.Option。
importmons.cli.Options。
importmons.cli.ParseException。
publicclassDomainPostProcessor{
privatefinalstaticStringIMPORT_ORDERBY="importjavax.persistence.OrderBy。
\n"。
p1EanqFDPw
publicstaticvoidmain(String[]args>{
DomainPostProcessordpp=newDomainPostProcessor(>。
DXDiTa9E3d
dpp.run(args>。
}
privatevoidrun(String[]args>{
Optionsopts=newOptions(>。
opts.addOption("h",false,"Printhelpforthiscommandlinetool">。
RTCrpUDGiT
opts.addOption("s",true,"Java-Source-File-Path">。
5PCzVD7HxA
opts
.addOption(
"c",
true,
"classtoremovemappedby,theformatlikeclassA,mappedbyB,mappedbyC。
classD,mappedbyE">。
jLBHrnAILg
Optionopt=newOption("o",true,
"collectiontoaddorderby,theformatlibclassA,relationClassB,OrderByvalue">。
xHAQX74J0X
opt.setArgs(Option.UNLIMITED_VALUES>。
opts.addOption(opt>。
CommandLineParserparser=newBasicParser(>。
CommandLinecl=null。
try{
cl=parser.parse(opts,args>。
}catch(ParseExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
if(cl.hasOption("h">>{
HelpFormatterf=newHelpFormatter(>。
f.printHelp("OptionsTip",opts>。
}elseif(cl.hasOption("s">>{
if(cl.hasOption("c">>
removeMappedBy(cl>。
if(cl.hasOption("o">>
addOrderBy(cl>。
}else{
HelpFormatterf=newHelpFormatter(>。
f.printHelp("OptionsTip",opts>。
}
}
privatevoidaddOrderBy(CommandLinecl>{
StringsrcPath=cl.getOptionValue("s">。
String[]targets=cl.getOptionValues("o">。
for(Stringtarget:
targets>{
String[]tmp=target.split("。
">。
FilesrcFile=newFile(srcPath+"/"+tmp[0]+".java">。
LDAYtRyKfE
StringsrcStr=readClassFile(srcFile>。
srcStr=orderByPostProcessor(srcStr,tmp[1],tmp[2].replaceAll(Zzz6ZB2Ltk
"_","">>。
FiledistFile=newFile(srcPath+"/_"+tmp[0]+".java">。
dvzfvkwMI1
saveClassFile(srcStr,distFile>。
srcFile.delete(>。
distFile.renameTo(srcFile>。
}
}
privateStringreadClassFile(FilesrcFile>{
BufferedReaderin=null。
try{
in=newBufferedReader(newFileReader(srcFile>>。
}catch(FileNotFoundExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
Strings。
StringBuildersb=newStringBuilder(>。
try{
while((s=in.readLine(>>!
=null>
sb.append(s>.append("\n">。
in.close(>。
}catch(IOExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
returnsb.toString(>。
}
privatevoidsaveClassFile(StringsrcStr,FiledistFile>{rqyn14ZNXI
PrintWriterout=null。
try{
out=newPrintWriter(distFile>。
}catch(FileNotFoundExceptione>{
//TODOAuto-generatedcatchblock
e.printStackTrace(>。
}
out.print(srcStr>。
out.flush(>。
out.close(>。
}
privatevoidremoveMappedBy(CommandLinecl>{
StringsrcPath=cl.getOptionValue("s">。
String[]groups=cl.getOptionValue("c">.split("。
">。
EmxvxOtOco
for(Stringg:
groups>{
String[]classes=g.split(",">。
FilesrcFile=newFile(srcPath+"/"+classes[0]+".java">。
SixE2yXPq5
StringsrcStr=readClassFile(srcFile>。
for(inti=1。
i i++>{ srcStr=mappedByPostProcessor(srcStr,classes[i]>。 6ewMyirQFL } FiledistFile=newFile(srcPath+"/_"+classes[0]+".java">。 kavU42VRUs saveClassFile(srcStr,distFile>。 srcFile.delete(>。 distFile.renameTo(srcFile>。 } } privateStringmappedByPostProcessor(StringsrcStr,StringclassName>{y6v3ALoS89 StringBuilderdistStr=newStringBuilder(>。 intlastpostion=0。 //表达式对象 Patternp=Pattern .compile( "^(@ManyToMany[(].+>(,mappedBy=\".+\">([>]\\n\\s*public.*<"M2ub6vSTnP +className+">get"+className +"e? s[(][>]\\s[{]>$",Pattern.MULTILINE>。 //创建Matcher对象 Matcherm=p.matcher(srcStr>。 while(m.find(>>{ distStr.append(srcStr.substring(lastpostion,m.start(>>>。 0YujCfmUCw StringbeginPart=m.group(1>。 StringendPart=m.group(3>。 distStr.append(beginPart>.append(endPart>。 lastpostion=m.end(>。 } distStr.append(srcStr.substring(lastpostion,srcStr.length(>>>。 eUts8ZQVRd returndistStr.toString(>。 } privateStringorderByPostProcessor(StringsrcStr,StringclassName,sQsAEJkW5T StringorderByValue>{ StringBuildertmpSB=newStringBuilder(>。 StringBuilderdistStr=newStringBuilder(>。 intlastpostion=0。 //表达式对象 Patternp=Ppile( "(@(? : One|Many>ToMany(? : .*>\\n>(\\s+public\\sList<"+classNameGMsIasNXkA +">>",Pattern.MULTILINE>。 //创建Matcher对象 Matcherm=p.matcher(srcStr>。 while(m.find(>>{ tmpSB.append(srcStr.substring(lastpostion,m.start(>>>。 TIrRGchYzg StringbeginPart=m.group(1>。 StringendPart=m.group(2>。 tmpSB.append(beginPart>.append("@OrderBy(\"">.append(orderByValue>7EqZcWLZNX .append("\">\n">.append(endPart>。 lastpostion=m.end(>。 } tmpSB.append(srcStr.substring(lastpostion,srcStr.length(>>>。 lzq7IGf02E p=Ppile("((? : import\\s.*。 \\n>+>",Pattern.MULTILINE>。 zvpgeqJ1hk StringtmpStr=tmpSB.toString(>。 m=p.matcher(tmpStr>。 lastpostion=0。 while(m.find(>>{ distStr.append(tmpStr.substring(lastpostion,m.start(>>>。 NrpoJac3v1 StringbeginPart=m.group(1>。 distStr.append(beginPart>。 if(beginPart.indexOf(IMPORT_ORDERBY>==-1> distStr.append(IMPORT_ORDERBY>。 lastpostion=m.end(>。 } distStr.append(tmpStr.substring(lastpostion,tmpStr.length(>>>。 1nowfTG4KI returndistStr.toString(>。 } } 安全设置类: packageorg.scbit.tissuebank.utils。 publicclassRandomUtils{ finalstaticStringstrTable="0123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnpqrstuvwxyz"。 fjnFLDa5Zo publicstaticStringgetRandomString(intintLength>{tfnNhnE6e5 StringretStr。 intlen=strTable.length(>。 booleanbDone=true。 do{ retStr=""。 intcount=0。 for(inti=0。 i i++>{ doubledblR=Math.random(>*len。 intintR=(int>Math.floor(dblR>。 charc=strTable.charAt(intR>。 if(('0'<=c>&&(c<='9'>>{ count++。 } retStr+=strTable.charAt(intR>。 } if(count>=2>{ bDone=false。 } }while(bDone>。 returnretStr。 } } packageorg.scbit.tissuebank.ws.interceptor。 importjavax.servlet.http.HttpServletRequest。 importorg.apache.cxf.interceptor.Fault。 importorg.apache.cxf.message.Message。 importorg.apache.cxf.phase.AbstractPhaseInterceptor。 HbmVN777sL importorg.apache.cxf.phase.Phase。 importorg.apache.cxf.transport.http.AbstractHTTPDestination。 V7l4jRB8Hs importorg.scbit.tissuebank.web.interceptor.LoginInterceptor。 83lcPA59W9 importorg.springframework.stereotype.Component。 @Component("AuthenticationAndAuthorizationInterceptor">mZkklkzaaP publicclassAuthenticationAndAuthorizationInterceptorextendsAVktR43bpw AbstractPhaseInterceptor publicAuthenticationAndAuthorizationInterceptor(>{ORjBnOwcEd super(Phase.PRE_PROTOCOL>。 } publicAuthenticationAndAuthorizationInterceptor(Strings>{2MiJTy0dTT super(Phase.PRE_PROTOCOL>。 } @Override publicvoidhandleMessage(Messagearg0>throwsFault{gIiSpiue7A HttpServletRequestrequest=(HttpServletRequest>arg0uEh0U1Yfmh .getContextualProperty(AbstractHTTPDestination.HTTP_REQUEST>。 IAg9qLsgBX Objectuser=request.getSession(>.getAttribute( LoginInterceptor.USER_HANDLE>。 if(user==null> thrownewRuntimeException("InvalidAuthentication">。 WwghWvVhPE } } 异常处理类: packageorg.scbit.tissuebank.service.exception。 publicclassUniquePropertyAlreadyExistExceptionextendsRuntimeException{asfpsfpi4k publicUniquePropertyAlreadyExistException(>{ } publicUniquePropertyAlreadyExistException(Stringmessage>{ooeyYZTjj1 super(message>。 } publicUniquePropertyAlreadyExistException(Stringdomain,Stringproperty>{BkeGuInkxI this(domain+"."+property>。 } publicUniquePropertyAlreadyExistException(Stringmessage,Throwablecause>{PgdO0sRlMo super(message,cause>。 } publicUniquePropertyAlreadyExistException(Stringdomain,Stringproperty,3cdXwckm15 Throwablecause>{ this(domain+"."+property,cause>。 } } WebSerive类: packageorg.scbit.tissuebank.ws。 importjava.util.List。 importjavax.jws.WebService。 importorg.scbit.tissuebank.domain.Icecontainer。 @WebService publicinterfaceISpaceManager{ List h8c52WOngM } 空间WebService执行类: packageorg.scbit.tissuebank.ws.impl。 importjava.util.List。 importjavax.annotation.Resource。 i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 标本 系统 代码