petclinic.docx
- 文档编号:6507640
- 上传时间:2023-01-07
- 格式:DOCX
- 页数:12
- 大小:22.89KB
petclinic.docx
《petclinic.docx》由会员分享,可在线阅读,更多相关《petclinic.docx(12页珍藏版)》请在冰豆网上搜索。
petclinic
TheSpringPetclinicApplication
(roughdraft)
Introduction
Springisacollectionofsmall,well-focused,looselycoupledJavaframeworksthatcanbeusedindependentlyorcollectivelytobuildindustrialstrengthapplicationsofmanydifferenttypes.Itisparticularlyusefulforbuildingenterpriseapplications.
Enterpriseapplicationstendtohavethefollowingattributes:
∙LotsofPersistentData
∙LotsofUserInterfacedisplaysandforms
∙ComplexBusinessLogic
∙Concurrentaccessbypotentiallymanysimultaneoususers
ThePetclinicsampleapplicationisdesignedtoshowhowtheSpringapplicationframeworkscanbeusedtobuildsimple,butpowerfuldatabase-orientedenterpriseapplications.
ItwilldemonstratetheuseofSpring'scorefunctionality:
∙JavaBeansbasedapplicationconfiguration
∙Model-View-Controllerwebpresentationlayer
∙PracticaldatabaseaccessthroughJDBC
∙DataValidationthatisnotdependentonthepresentationlayer
InadditiontoshowingdevelopershowtogetstartedwithSpring,thePetclinicsamplewillendeavortodemonstratehowSpringcanusedasaneffectivetoolforimplementingapplicationsthatareconcise,flexible,testable,andmaintainable.
TheSpringframeworksprovideagreatdealofmuchneededinfrastructuretosimplifythetasksfacedbyapplicationdevelopers.Itprovidesinfrastructurethathelpsdeveloperstocreateapplicationsthatare:
∙concisebyhandlingalotofthecomplexcontrolflowthatisneededtousetheJavaAPI's,suchasJDBC,JNDI,JTA,RMI,andEJB.
∙flexiblebysimplifyingtheprocessofexternalapplicationconfigurationthroughtheuseofReflectionandJavaBeans.Thisallowsthedevelopertoachieveacleanseparationofconfigurationdatafromapplicationcode.Allapplicationandwebapplicationobjects,includingvalidators,workflowcontrollers,andviews,shouldbeJavaBeansthatcanbeconfiguredexternally.ThevalidationandwebapplicationframeworksprovidegoodsupportforInternationalization.
∙testablebysupplyinganinterfacebaseddesigntomaximizepluggability.ThisfacilitatesthetestingofBusinessLogicwithoutrequiringthepresenceofapplicationorlivedatabaseservers.
∙maintainablebyfacilitatingacleanseparationoftheapplicationlayers.ItmostimportantlyhelpsmaintaintheindependenceoftheBusinessLogiclayerfromthePresentationlayerthroughtheuseofaModel-View-Controllerbasedwebpresentationframeworkthatcanworkseamlesslywithmanydifferenttypesofviewtechnologies.ThewebSpringwebapplicationframeworkhelpsdeveloperstoimplementtheirPresentationasacleanandthinlayerfocusedonitsmainmissionsoftranslatinguseractionsintoapplicationeventsandrenderingmodeldata.
Itisassumedthatusersofthistutorialwillhaveabasicknowledgeofobject-orienteddesign,Java,Servlets,JSP,andrelationaldatabases.ItalsoassumesabasicknowledgeoftheuseofaJ2EEwebapplicationcontainer,Tomcatinparticular.
Sincethepurposeofthesampleapplicationistutorialinnature,theimplementationpresentedherewillofcourseprovideonlyasmallsubsetofthefunctionalitythatwouldbeneededbyarealworldversionofthePetclinic.
PetclinicSampleApplicationRequirements
Theapplicationrequirementisforaninformationsystemthatisaccessiblethroughawebbrowser.Theusersoftheapplicationareemployeesoftheclinicwhointhecourseoftheirworkneedtoviewandmanageinformationregardingtheveterinarians,theclients,andtheirpets.
ThesampleapplicationsupportsthefollowingUseCases:
∙Viewalistofveterinariansandtheirspecialties
∙Viewinformationpertainingtoapetowner
∙Updatetheinformationofapetowner
∙Addanewpetownertothesystem
∙Viewinformationpertainingtoapet
∙Updatetheinformationofapet
∙Addanewpettothesystem
∙Viewinformationpertainingtoapet'svisitationhistory
∙Addinformationpertainingtoavisittothepet'svisitationhistory
TheviewtechnologiesthatareusedforrenderingtheapplicationareJavaServerPages(JSP)alongwiththeJavaStandardTagLibrary(JSTL).
PetclinicSampleApplicationImplementation
ServerTechnology
ThesampleapplicationshouldbeusablewithanyJ2EEwebapplicationcontainerthatiscompatiblewiththeServet2.3andJSP1.2specifications.SomeofthedeploymentfilesprovidedaredesignedspecificallyforApacheTomcat.Thesefilesspecifycontainer-suppliedconnectionpooleddatasources.Itisnotnecessarytousethesefiles.Theapplicationhasbeenconfiguredbydefaulttouseadatasourcewithoutconnectionpoolingtosimplifyusage.ConfigurationdetailsareprovidedintheDeveloperInstructionssection.
DatabaseTechnology
Thesampleapplicationusesarelationaldatabasefordatastorage.Supporthasbeenprovidedforachoiceof1of2databaseselections,MysqlorHypersonicSQL.HypersonicSQLversion1.7.1isthedefaultchoiceandacopyisprovidedwiththeapplication.Itispossibletoeasilyconfiguretheapplicationtouseeitherdatabase.ConfigurationdetailsareprovidedintheDeveloperInstructionssection.
DevelopmentEnvironment
AcopyoftheSpringruntimelibraryjarfileisprovidedwiththesampleapplicationalongwithsomeoftheotherrequiredjarfiles.Thedeveloperwillneedtoobtainthefollowingtoolsexternally,allofwhicharefreelyavailable:
∙JavaSDK1.4.1
∙Ant1.5.1
∙Tomcat4.1.18,orsomeotherwebapplicationcontainer
∙JUnit3.8.1-neededtoruntheunittests
∙Mysql3.23.53withmysql-connector2.0.14(optional)
NOTE:
TheversionnumberslistedwereusedinthedevelopmentofthePetclinicapplication.Otherversionsofthesametoolsmayormaynotwork.
DownloadlinksforthevarioustoolsneededareprovidedintheDeveloperInstructionssection.
PetclinicDatabase
ThefollowingisanoverviewofthedatabaseschemausedinPetclinic.Detailedfielddescriptionscanbefoundinthe"initDB.txt"SQLscriptfilesinthedatabsespecific"db"sub-directories.All"id"keyfieldsaretypeofJavatypeint.ForeachtablewithaPRIMARYKEYthereisacorrespondingsequencertablethatisusedtoaidinthegenerationofnewprimarykeys.Thenameofthesequencertableisaconjunctionoftheoriginaltable'snamewith"_seq".
TABLE:
owners
PRIMARYKEYid
TABLE:
owners_seq-sequencerforowners
TABLE:
types
PRIMARYKEYid
TABLE:
types_seq-sequencerfortypes
TABLE:
pets
PRIMARYKEYid
FOREIGNKEYtype_idreferencesthetypestableidfield
FOREIGNKEYowner_idreferencestheownerstableidfield
TABLE:
pets_seq-sequencerforpets
TABLE:
vets
PRIMARYKEYid,int
TABLE:
vets_seq-sequencerforvets
TABLE:
specialties
PRIMARYKEYid,int
TABLE:
specialties_seq-sequencerforspecialties
TABLE:
vet_specialties-alinktableforvetsandtheirspecialties
FOREIGNKEYvet_idreferencesthevetstableidfield
FOREIGNKEYspecialty_idreferencesthespecialtiestableidfield
TABLE:
visits
PRIMARYKEYid
FOREIGNKEYpet_idreferencesthepetstableidfield
TABLE:
visits_seq-sequencerforvisits
PetclinicObjectModel
NOTE:
ThebusinesslayerisCOMPLETELYindependentofthePresentationlayer.
BusinessLayerclasses
∙petclinic.Clinic(interface)-Thehigh-levelbusinessAPI
∙petclinic.ClinicImpl-defaultimplementationofClinic.Providescachesofallspecialties,allvets,allpettypes,aswellasofownersandtheirpetsandvisitsthathavebeenfound.
∙petclinic.Entity-simpleJavaBeansuperclassofalldatabaserelatedJavabeans
∙petclinic.NamedEntity-addsnamepropertytoEntity,usedtoimplementspecialtiesandpettypes
∙petclinic.Person-superclassofVetandOwner
∙petclinic.Vet-holdsListofspecialties
∙petclinic.Owner-holdsListofpets
∙petclinic.Pet-holdsListofvisits
∙petclinic.Visit
∙petclinic.NoSuchEntityException(unchecked)
∙petclinic.validation.FindOwnerValidator
∙petclinic.validation.OwnerValidator
∙petclinic.validation.PetValidator
∙petclinic.validation.VisitValidator
PersistenceLayerclasses
∙petclinic.ClinicDAO(interface)-Thehigh-levelpersistenceinterfaceAPI
∙petclinic.ClinicJdbcDAO-ThedefaultimplementationofClinicDAO.ProvidesinnerclassDataAccessObjectsthatimplement8typesofQueries,3typesofInserts,and2typesofUpdates.
PresentationLayer(webapplication)classes
∙petclinic.web.ClinicController-subclassofMultiactionControllertohandlesimpledisplayorientedURL's
∙petclinic.web.AbstractSearchFormController-subclassofSimpleFormControlleraddsthenotionofasearchformviaanabstractsearchmethod
∙petclinic.web.FindOwnerForm-subclassofpetclinic.web.AbstractSearchFormControllerwhichimplementsthesearchmethod
∙petclinic.web.AbstractClinicForm-subclassofSimpleFormControllerthatisthesuperclassoftheAddandEditforms
∙petclinic.web.AddOwnerForm-usedtoaddanewOwner
∙petclinic.web.EditOwnerForm-usedtoeditanexistingOwner
∙petclinic.web.AddPetForm-usedtoaddanewPet
∙petclinic.web.EditPetForm-usedtoeditanexistingPet
∙petclinic.web.AddVisitForm-addsanewVisit
∙petclinic.WebUtils-providesstaticutilitymethods
TestLayerClasses
∙petclinic.ClinicImplTest-asimpleandincompleteJUnittestclassforClinicImpl
Views&ImplementedUseCases
∙welcomeView-homescreenprovideslinkstodisplayvetslist,findanowner,orviewdocumentation
∙vetsView-displaysallvetsandtheirspecialties
∙findOwnersForm-allowsusertosearchforownersbylastname
∙findOwnersRedirectView-redirectstofindOwnerForm
∙selectOwnerView-allowsusertoselectfrommultipleownerswiththesamelastname
∙ownerView-displaysauser'sdataandalistoftheowner'spetsa
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- petclinic