Spring + Hibernate + Anotaciones = Desarrollo Rápido en Java

Post on 27-Sep-2015

31 views 9 download

description

tip

Transcript of Spring + Hibernate + Anotaciones = Desarrollo Rápido en Java

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 1/14

    EntraenAdictosatravsde

    Entrar

    Email

    ContraseaRegistrarme

    Olvidmicontrasea

    Inicio Quinessomos Formacin Comparadordesalarios Nuestroslibros Ms

    Estsen:Inicio Tutoriales Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    Sguenosatravsde:

    CatlogodeserviciosAutentia

    ltimasNoticias

    2015:Volvemosalaoficina!

    CursoJBossdeRedHat

    Siereselresponsableoldertcnico,considratedesafortunado.Nopuedesculparanadieporsergris

    Portales,gestoresdecontenidosdocumentalesydesarrollosamedida

    ComentandoellibroStartupNation,LahistoriadelmilagroeconmicodeIsrael,deDanSenor&SaluSinger

    Histricodenoticias

    ltimosTutoriales

    ByteCode:SabesloquerealmenteprogramasenJava?

    PopArtalestiloAndy

    Vertodoslostutorialesdelautor

    AlejandroPrezGarca

    AlejandroessociofundadordeAutentiaynuestroexpertoenJ2EE,Linuxyoptimizacindeaplicacionesempresariales.

    IngenieroenInformticayCertifiedScrumMaster

    Seguira@alejandropgarci 1,145seguidores

    Sitegustaloqueves,puedescontratarleparadarteayudaconsoporteexperto,impartircursospresencialesentuempresaoparaquerealicemostusproyectoscomofactora(Madrid).PuedesencontrarmeenAutentia:Ofrecemosserviciosdesoporteadesarrollo,factorayformacin.

    Fechadepublicacindeltutorial:20080514 Tutorialvisitado147.412vecesDescargarenPDF

    Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    Creacin:09052008

    ndicedecontenidos1.Introduccin2.Entorno3.Laaplicacin4.Lacapadepersistencia4.1.Lasentidades4.2.ElDAO5.Lacapadenegocio6.Lacapadecontrol7.Lacapadepresentacin8.Losficherosdeconfiguracin8.1.hibernate.cfg.xml(configuracindeHibernate)8.2.applicationContext.xml(configuracindeSpring)8.3.facesconfig.xml(configuracindeJSF)9.Diferenciaentrelasanotaciones@Repository,@Service,@Controller10.Conclusiones11.Sobreelautor12.Colaboraciones

    1.IntroduccinUnodelosgrandesproblemasquetienehoyendaeldesarrollodeaplicacionesWebenJavaesqueelciclodedesarrolloes,enmuchasocasiones,demasiadolargo(oporlomenosmslargodeloquenosgustara).

    DebidoaesteproblemahansurgidoalternativasdelestilodeRubyonRails(http://www.rubyonrails.org/)oinclusoGoogleAppEngine(http://code.google.com/appengine/)unaalternativaqueproponeGoogle,basadaenellenguajePython.

    Todasestasalternativaspuedenresultarmuyinteresantes,perosuelenestarbasadasenlenguajesconchequeodetiposdbil,otrasladandoelchequeodetiposatiempodeejecucin(comoPython),loqueprovocaquepuedansermuytilesparahacerrpidamentepequeasaplicacionesoprototipos,peroquesepuedenconvertirenungranproblemacuandoqueremosconstruiraplicacionesmedianasograndesdondeintervienenvariaspersonasoinclusoequiposenelprocesodedesarrollo.Paraestecasodeaplicacionesmedianasograndesygruposdedesarrollocolaborativos,sehace

    D I P L O M A D O A D I S T A N C I A

    Cursos y Programas en lnea, Diplomados en diver

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 2/14

    Warhol:Photoshop

    Tcnicasderealizacindeentrevistas

    ImprimiendodocumentosOfficeyPDFexistentesconJavaenentornoWindows.Batch&Print

    Enfrntateconxitoalacrisisdelahojaenblanco

    ltimosTutorialesdelAutor

    MixinsenJavayJava8!S,esposible!

    CmohacertestingautomticodeunappletJava

    PrimerospasosconClojure:LeiningenyMidje

    CmointegrarenGradleunservidorJettyoTomcat

    Kettlenoesunatetera,eslaherramientadeETLdePentaho!

    CategorasdelTutorial

    Spring

    Hibernate

    JavaEstndar

    TcnicasAvanzadas

    necesariounlenguajefuertementetipado,dondepodamosdefinirjerarquasdetipos(clasesointerfaces)enlasqueelrestodelequiposepuedaapoyarparadesarrollarsinriesgos.

    EnestetutorialveremoscomograciasaSpring+Hibernate+Anotacionespodemosconseguirundesarrollotanrpidocomoelquepodemosconseguirconlasalternativasantesmencionadas.

    YahemosvistoenotrostutorialeselusodeSpringoHibernate,peroenestetutorialvamosaintentarsacartodoelpartidoalasAnotacionesdeJava5para,basndonosenelconceptode"convencinfrenteaconfiguracin",centrarnosenelcdigo,olvidarnosdelabasedededatosydeesostediososficherosdeconfiguracinenXML.

    ConestonoquierodecirquedebamosolvidarnosporcompletodeesosficherosXML,sinoquedebemoscentrarnosaresolverelproblemaquenosocupa,deformarpidayconunbuendiseo,consiguiendouncdigolegibleymantenible.Siluegoqueremoshacerciertosrefinamientos,ovirgueras,losXMLsiempreestarnesperndonosparapodersobreescribirelcomportamientoestablecidoconlasanotaciones.

    2.EntornoEltutorialestescritousandoelsiguienteentorno:

    Hardware:PorttilAsusG1(Core2Duoa2.1GHz,2048MBRAM,120GBHD).

    NvidiaGEFORCEGO7700

    SistemaOperativo:GNU/Linux,Debian(unstable),Kernel2.6.24,KDE3.5

    JavaSun1.6.0_06

    Spring2.5.4

    Hibernate3.2.6

    JSF(RI1.2)+Facelets1.1.14+ICEfaces1.7

    3.LaaplicacinVamosahacerunapequeaaplicacindondesemuestreunlistadodeproductos.Podraquedaralgocomo:

    Ylapantalladeedicindeproductos:

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 3/14

    4.LacapadepersistenciaVamosaempezar"deabajoaarriba",esdecir,partiremosdefiniendonuestrasentidadespersistentesconHibernate,eiremos"subiendo"hastalacapadepresentacinycontrolconJSF,pasandoantesporelnegocio(elmodelo)conSpring.

    4.1.Lasentidades

    Ennuestroejemploslotenemoslaentidadproducto,conlosatributosnombre,descripcinyprecio.

    Veamoscomonosquedaralaclase:

    viewplain print ?

    01. @Entity02. publicclassProduct{03. @Id04. @GeneratedValue05. privateIntegerid;06. 07. privateStringname;08. 09. privateStringdescription;10. 11. privatefloatprice;12. 13. Product(){14. //Sloelmanagerpuedeconstuirnuevasinstancias15. }16. 17. publicStringgetName(){18. returnname;19. }20. 21. publicvoidsetName(Stringname){22. this.name=name;23. }24. 25. publicStringgetDescription(){26. returndescription;27. }28. 29. publicvoidsetDescription(Stringdescription){30. this.description=description;31. }32. 33. publicfloatgetPrice(){34. returnprice;35. }

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 4/14

    36. 37. publicvoidsetPrice(floatprice){38. this.price=price;39. }40. 41. }

    Podemosvercomosetratadeunaclasetotalmentenormal,dondeenlalnea1anotamosquesetratadeunaentidad,yenlaslneas3y4indicamoscualeseliddelaentidadyqueesteidsergeneradoporlabasededatos.

    Cabedestacardoscosas:

    TodaslasnotacionesusadaspertenecenalestndardeJPAporloquesonvlidastantoparaHibernatecomoparaEJB3.0.

    Hemosanotadounatributoprivadoquenoseusaenningnsitio,nisiquieratenemosgetterosetter.EstolohacemosapostayaqueesalgoquegestionarinternamenteHibernate,yqueremoscondicionarlomenosposiblenuestrodiseo(nuestronegocio).

    4.2.ElDAO

    ElDAOeselDataAccessObject,esdecir,serlaclasedonderesidalalgicademanejodeHibernate(oJDOoJDBoJPAo...).DeestaformaconseguimosquenuestralgicadenegocionosepanadadeHibernate,ysiemprequequieraaccederalosdatosloharausandoestaclase.

    Veamosunejemplosencillo:Primerodefinimosunainterfaz,aspodemosintercambiarlaimplementacinfcilmentesialgndanoscansamosdeHibernate(nolocreo):

    viewplain print ?

    01. publicinterfaceDao{02. 03. publicvoidpersist(Objectentity);04. 05. publicvoidpersist(Object[]entities);06. 07. publicListfind(ClassentityClass);08. 09. publicTload(ClassentityClass,Serializableid);10. 11. publicListfind(Stringhql);12. 13. }

    Paraelejemploslohemosdefinidoalgunasoperacionessimples.AhoraveamosunaposibleimplementacinusandolasfacilidadesquenosproporcionaSpring+Hibernate:

    viewplain print ?

    01. @Repository02. publicclassSpringHibernateDaoextendsHibernateDaoSupportimplementsDao{03. 04. @Autowired05. publicSpringHibernateDao(SessionFactorysessionFactory){06. super.setSessionFactory(sessionFactory);07. }08. 09. @Transactional10. publicvoidpersist(Objectentity){11. getHibernateTemplate().saveOrUpdate(entity);12. }13. 14. @Transactional15. publicvoidpersist(Object[]entities){16. for(inti=0;i

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 5/14

    Aunqueellectorenunprincipionoentiendalaimplementacinloquecreoquequedaclaroesqueessencilla,puestoqueselimitaaunaspocaslneas(denuevosugierorepasarladocumentacin).

    Dondesivamosahacerespecialhincapiesenlasnuevasanotacionesquenoshanaparecido:

    Enlalnea1nosencontramoscon@Repository.EstaesunaanotacindeSpring.Estamosindicandoqueestaesunaclaserelacionadaconlacapadepersistencia,yquedebeserunSingleton(slohabrunainstanciadelaclaseHibernateDaoSupport,ytodoslosThreadsdelaaplicacinlacompartirn).

    Enlalnea4nosencontramoscon@Autowired.EstaesunaanotacindeSpring.SirveparaindicarleaSpringquecuandovayaacrearlainstanciadeHibernateDaoSupportdebe"inyectarle"(pasarle)enelconstructorunareferenciaalSessionFactory(elSessionFactorysloconfiguraremosmedianteXML,loveremosmsadelante).

    Porltimo,enlalnea9,14,20,...nosencontramosconlaanotacin@Transactional.EstaesunaanotacindeSpring.Estamosindicandoqueelmtodoencuestinestransaccional.LoqueharSpringescomprobarsiyaexisteunatransaccinabierta,siexisteseuniraella,ysinoexiste,abrirunanuevatransaccin(estecomportamientoesconfigurable).Deestaformanosaseguramosquetodaoperacindelabasededatosserealizadentrodeunatransaccin.AdemssidurantelaejecucindelmtodoseproducealgunaexcepcindeRuntime,seharautomticamenterollbackdelatransaccin(estecomportamientotambinesconfigurable).

    Yahemosterminadoconlacapadepersistencia.Rpidoverdad?.EnningnmomentohemosvistosentenciasSQL,nisiquieraparacrearlastablasdelabasededatos.MsadelanteveremoscomoconfiguramosHibernateparaqueseencarguedecrearnoslastablasautomticamente(Losficherosdeconfiguracinlosveremostodosalfinal,porahorasigamosconelcdigoJava).

    5.LacapadenegocioEnestaaplicacinelnegocionoesgrancosa,pocomsqueobtenerlosproductosoguardarlos,asquelaclasenosvaaquedarmuysencillita:

    viewplain print ?

    01. @Service02. publicclassProductMgr{03. 04. @Resource05. privateDaodao;06. 07. publicProductnewProduct(){08. returnnewProduct();09. }10. 11. publicvoidpersist(Productproduct){12. dao.persist(product);13. }14. 15. publicListgetProducts(){16. finalListlist=dao.find(Product.class);17. returnlist;18. }19. }

    HaciendounaclasetansencillayquelonicoquehaceesdelegarenelDAO,hayquienmepodraacusardeestarcayendoenelantipatrn"Poltergeist",yaquedesdecontrolpodramosusardirectamenteelDAOpararecuperaroguardarlosproductos,yquitarnosestaclasedeenmedio.PeronocreoqueesteseaelcasoyaqueprimaelMVCyelbajoacoplamiento.

    Siempredebemosintentarquelacapadecontrolypresentacinseanlomstontasposibles.Pensarporunmomentoquenousamosestaclase"manager"yqueusamoselDAOdesdelasclasesdecontroldeJSF(losmanagedbeans),siahoraquisiramosmontarunwebserviceparaaprovecharestaaplicacindesdeotrasaplicacionescuantocdigoqueyahabramosescritoenelmanagedbeantendramosquerepetirenelwebservice?

    Perovamosallo,quehemosvenidoahablardelasanotaciones)

    Enlalnea1nosencontramoscon@Service.EstaesunaanotacindeSpring,similara@Repositoryqueyahabamosvistoantes.Estamosindicandoqueestaesunaclaserelacionadaconlacapadeservicio(clasesdenegocio),yquedebeserunSingleton.

    Enlalnea4nosencontramoscon@Resoruce.Estaanotacinesdelestndar,porloqueesvlidatantoconSpringcomoconEJB3.0.Estaindicandoquealcrearlainstanciadeestaclasesedebe"inyectar"(inicializar)enesteatributounareferenciaalainstanciadelDao(eslainstanciaquehabamosdeclaradoanteriormentecon@Repository).

    SeacaboYahemosterminadoconnegocio!!!

    6.LacapadecontrolVamosaimplementarelcontrolconlosmanagedbeansdeJSF.Comotenemosdospantallaspodemoshacerdosmanagedbean.

    Eldelapantallaconellistadodeproductosnospodraquedaralgocomo:

    viewplain print ?

    01. @Controller02. @Scope("session")03. publicclassListProduct{

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 6/14

    04. 05. @Resource06. privateProductMgrproductMgr;07. 08. @Resource09. privateEditProducteditProduct;10. 11. privateUIDataproductsDataTable;12. 13. publicStringeditProduct(){14. Productproduct;15. try{16. product=(Product)productsDataTable.getRowData();17. 18. }catch(IllegalArgumentExceptione){19. //Nosehaseleccionadoningunafila;seestaadiendounnuevoelemento.20. product=productMgr.newProduct();21. }22. editProduct.setProduct(product);23. 24. return"editProduct";25. }26. 27. publicListgetProducts(){28. returnproductMgr.getProducts();29. }30. 31. publicUIDatagetProductsDataTable(){32. returnproductsDataTable;33. }34. 35. publicvoidsetProductsDataTable(UIDataproductsDataTable){36. this.productsDataTable=productsDataTable;37. }38. }

    Laclaseparalaedicindelosproductos:

    viewplain print ?

    01. @Controller02. @Scope("session")03. publicclassEditProduct{04. 05. @Resource06. privateProductMgrproductMgr;07. 08. privateProductproduct;09. 10. publicStringsave(){11. productMgr.persist(product);12. return"home";13. }14. 15. publicProductgetProduct(){16. returnproduct;17. }18. 19. publicvoidsetProduct(Productproduct){20. this.product=product;21. }22. }

    Fijndonosenlaclasedelistado,lasnuevasanotacionesqueaparecenson:

    Enlalnea1nosencontramoscon@Controller.EstaesunaanotacindeSpring,similara@Repositoryo@Servicequeyahabamosvistoantes.Estamosindicandoqueestaesunaclaserelacionadaconlacapadecontrol.

    Enlalnea2nosencontramoscon@Scope("session").EstaesunaanotacindeSpring.ConellaestamossobreescribiendoelcomportamientopordefectodeSpring,queeshacerSingletons,yleestamosdiciendoquenoscreeunainstanciadiferentedeestaclaseporcadasesinHttp.Esdecir,cadausuariotendrsupropiomanagedbean.

    Tambincabedestacardesdelalnea5hastala9.Laanotacin@Resourceyalahemoscomentadoantes,peroquierorecalcarcomoseest"inyectando"lareferenciaalmanager(laclasedenegocio)ylareferenciaaotromanagedbeandelacapadecontroldeJSF,esdecir,SpringescapazdegestionarlasdependenciasentrelosdiferentesmanagedbeansdeJSF.

    7.LacapadepresentacinEstimplementadaconJSF+Facelets+ICEfaces,peronotienenadadeespecial.Esdecirlaconstruiremoscomohabitualmentesetrabajaconestastecnologas.

    CuandoqueramosaccederalosmanagedbeansdesdeelExpressionLanguagesimplementeloharemos.Porejemplo:

    viewplain print ?

    01.

    viewplain print ?

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 7/14

    01.

    viewplain print ?

    01.

    8.Losficherosdeconfiguracin8.1.hibernate.cfg.xml(configuracindeHibernate)

    viewplain print ?

    01. 02. 03. 06. 07. 08. 09. create10. true11. 12. 13. 14.

    Enlalnea9esdondeleestamosdiciendoaHiberantequequeremosquenoscreelastablasalarrancarlaaplicacin.Ojoporquesilastablasyaexistenlasborraprimero,esdecir,estopuedesermuyconvenienteparadesarrolloopruebas,peronoparaproduccin!!!Loquepodemoshaceres,unavezestncreadas,hacerun"export"delabasededatosparaobtenerlosscriptsdecreacinquepodemosretocarparadejarloslistosparaproduccin(peronosahorramoslogordo)

    8.2.applicationContext.xml(configuracindeSpring)

    viewplain print ?

    01. 02. 12. 13. 14. 15. 16. 17. 18. 19. 20.

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 8/14

    Puedeparecerquehaymuchoperoenrealidadslohay4cosas:configuracindeSpringparaquehagacasoalasanotaciones,definireldatasource(dehibernate,delservidorporjndi,...),definirelsessionFactorydeHibernate,ydefinireltransactionManager(eldeHibernate,JTA,...)

    Siosfijisnohayniunasoladefinicindebeandeclasesquehayamosescritonosotros,deformaqueesteficherosemantendrconstanteconindependenciadelosbeansquetenganuestraaplicacin.

    8.3.facesconfig.xml(configuracindeJSF)

    viewplain print ?

    01. 02. 04. 05. 06. 07. 08. es09. en10. 11. 12. com.icesoft.faces.facelets.D2DFaceletViewHandler13. org.springframework.web.jsf.DelegatingVariableResolver14. 15. 16. 19. 20. 21. home22. /listProduct.jspx23. 24. 25. 26. 27. /listProduct.jspx28. 29. editProduct30. /editProduct.jspx31. 32. 33. 34.

    SepuedeapreciarcomoslohayconfiguracingeneraldeJSFyreglasdenavegacin.Peronodeclaramosningnmanagedbean.Estofuncionagraciasalalnea13dondeseleindicaaJSFquedebedelegarenSpringparabuscarlosmanagedbeans.Esdecir,JSFlosbuscaraentrelosquedeclaremosenelfichero(siesquedeclaramosalguno,quenoesnuestrocaso),ysinoloencuentra,lobuscarenSpring.

    Comosepuedecomprobar,tambinnosahorramosescribircantidaddecdigoeneseXML.

    9.Diferenciaentrelasanotaciones@Repository,@Service,@ControllerLadiferenciaesbsicamentesemntica,esdecir,cadaunadenotaperfectamenteaque"capa"correspondelaclaseanotada.Perotodassecomportandeigualmanera(porejemploentodasnuestrasclasespodramoshaberusadolaanotacin@Serviceyhubierafuncionadoigual).

    Estoseconsigueporquelastresanotacionesextiendenlaanotacin@Component.

    Elhechodeusaranotacionesdiferentespuedesermuyinteresantesiluegoqueremosaplicaraspectos(AOP=AspectOrientedProgramming)atodaslasclasesdeunamismacapa.Esdecir,porejemplo,puedohacerunareglaparaaplicarciertoadviceatodaslasclasesconlaanotacin@Controller.

    10.ConclusionesGraciasaSpring+Hibernate+AnotacionespodemosconseguirreducirlostiemposdedesarrolloconJava.

    YaexistenotrotipodeframeworkssimilarescomoEJB3.0oSeam(deJBoss)quetambinsebasanenanotaciones,peropodemosveralgunasventajasdeusarSpring+Hibernate:

    ConSpring+HibernatepodemosusarcontenedoresligeroscomoTomcat,mientrasqueconEJB3.0oSeamestamoscondenadosausarunservidordeaplicacionescomoJBoss.EltenerqueusarporobligacinunservidordeaplicacionesaumentalostiemposdedesarrolloyaquesetardamsendesplegarenunservidordeaplicacionesqueenunTomcat.Ademsnecesitaremosmsrecursos.

    ConSpring+HibernatepodemoshacertodoeldesarrolloenunTomcat,aunquefinalmenteacabemosinstalandoenproduccinenunservidordeaplicaciones.

    ConSpring+Hibernatepodemosescribiraplicacionesnormalesdeescritorioolneadecomandos,mientrasqueconEJB3.0oSeamno,esdecirconSpring+Hibernate,noesquenosvalgaconuncontenedorligero,esquenotenemosporqueusaruncontenedorenabsoluto.

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 9/14

    Share | 4

    Registrateyaccedeaestayotrasventajas

    AnmateycomntanosloquepiensessobreesteTUTORIAL:

    Springdacantidaddefacilidades,comoSeam,yposiblementemsqueEJB3.0(yaqueseintegracongrancantidaddeotrosframeworks).AunquenohayqueolvidarqueEJB3.0permitetransaccionesdistribuidas(Spring+Hibernatenolopermiten,aunquesepuedenuniraunatransaccinJTAgestionadaporunservidordeaplicaciones),yademslosEJBssonporsimismosobjetosdistribuidos(muyfcilesdelocalizaryusardesdecualquierpuntodenuestrared).

    Alfinalnitodoesabsolutamentebuenonitodoesabsolutamentemalo.Poresodebemosconoceropciones,evitarel"GoldenHammer",yquedarnosconlomejordecadacasa)

    11.SobreelautorAlejandroPrezGarca,IngenieroenInformtica(especialidaddeIngenieradelSoftware)

    SociofundadordeAutentia(Formacin,Consultora,Desarrollodesistemastransaccionales)

    mailto:alejandropg@autentia.com

    AutentiaRealBusinessSolutionsS.L."SoporteaDesarrollo"

    http://www.autentia.com

    12.ColaboracionesAntonioMartnez,unodevosotros,noshamandadoelpom.xmlquelestusandoparaestetutorial.

    Aquoslopodisdescargar.

    MuchasgraciasAntonio!!!

    Acontinuacinpuedesevaluarlo:

    Regstrateparaevaluarlo

    Porfavor,vota+1ocomprtelositepareciinteresante

    Fechapublicacin:2013102500:51:23

    Autor:sotobotero

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 10/14

    Cordialsaludo,Antetodoquierofelicitarelautor,excelentetutorial.

    Quisierasabersialguientieneelfuentedelacapadepresentacindeestetutorial,otieneideadecomocrearelcomponentequemanejalaentidadproductoyseencargadeleerlosdatosdellapagina.

    Agradezcosucolaboracio.

    Fechapublicacin:2013030114:19:00

    Autor:deadmau5

    Muybuenpost!!Groso!!=)

    Fechapublicacin:2012031300:12:40

    Autor:alvarillo

    buenastardes.graciasporcompartirestossupertutoriales.yosoynovatoenlaprogramacionjava,apenascomenceuncursobasico,yahoritaquisierahacerunproyectomuyparecidoconspringhibernatexmlbeans.tengomibasededatosenpostgres,yatambientengomiarchivodto,yquisierahaceraltas,bajas,consultasyborrarregistros,teniendounfromdeadministracion.comolepodriahacer.yatambiencreemiproyectodespring.saludoscordialesylesagradeceriasuayuda.

    Fechapublicacin:2012022802:29:13

    Autor:Calderas

    Saludos.BuentutorialparaempezarconSpring.Tutorialesmsextendosterminanpordesanimar.

    Tengode2a5clientesDesktopdiferentesperoquecompartenunmodelodenegociosencomn.EntiendoqueenunservidordeaplicacionespuedocolocarJavaBeansEnterprisequemesirvirancomoelmodelodenegociosadondeseconectaranlasaplicacionesdesktoputilizandoRMI.

    Luego,leoqueSpringofreceunamejorformadeusarlosJavaBeanssinemabargo,todoslosejemplosquemetopo(comoelactual)usanclientesWebynoDesktop.

    Entonces,esposibleusarSpringparahacerelmodelodenegociosyquedichomodeloseaaccesadodesdeunoovariosclientesDesktop?

    Seagradecesimedanelnorteoindicanalgnejemplootutorial.

    JJ

    Fechapublicacin:2012010321:48:26

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 11/14

    Autor:angel3d3

    ltutorialestmuybueno,separecemuchoaloquenecesitoaprender,perocomosoynuevoenestotengoalgunosproblemasconlaslibrerasdespring,estoyprobandoestoenunaaplicacinqueyausaestaformula(Spring+hibernate+anotations)peroalparecernotengolalibreraorg.springframework.stereotype.Repositorynecesariaparaelusode@Repositoryserquealguienpuedeayudarme?estoyusandonetbeans7.0.1sobrewindows7yelerrorquemedaes:"Packageorg.springframework.stereotype.Repositorydoesnotexist"

    Fechapublicacin:2011032315:05:59

    Autor:mpccolorado

    NodeberahaberenlainterfazDaohayunmtodoremove?Muchasgracias.

    Muybuenartculo.Esjustoloquenecesitaba,porqueesfielatodoslosconsejosdadosenelmanualdereferenciadeSpring,peroatravsdeunejemplocompletamentefuncionalysencillo.

    Fechapublicacin:2011013003:55:52

    Autor:ARICARRARO

    Buentutorial,sinembargotengounasugerencia.ApenasestoyconociendoSpringyestoyunpoco"verde",podrianexplicarunpocomssobrecomoconfigurarlasherramientascomo:

    FaceletesICEFacesyJSF

    graciasporelaporte

    Fechapublicacin:2011012014:21:41

    Autor:sgomez85

    Graciasporeltutorial,esexcelenteyjesustoloqueestababuscando:)

    Fechapublicacin:2010111018:40:10

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 12/14

    Autor:Parche

    Genialestesitio,osheseguidoenmuchasocaciones:)

    Lacapadecontrolnomequedadeltodoclara,relamentenolaentiendo,podessubirunwarconelporyecto?osloagradeceramuchsimo

    Fechapublicacin:2010082614:42:16

    Autor:chris456

    Muybuentutorialperomeencantariaquepudieranponerelcodigoparadescargar,asicompararyencontrarmiserroresalconfigurarlosframeworks

    Fechapublicacin:2010010300:16:37

    Autor:jcarmonaloeches

    Animandoaloslectores.

    Dagustoseguiroselhiloenlasevolucionestecnolgicasqueexisten.Esperoqueesteaosigisunbuenalnea,osseguirleyendo.

    Cuandoseaisabueletesynopodispensar,osrelevaremosenelcargo:)

    Fechapublicacin:2009100619:14:12

    Autor:oricha

    MuybuenArticulo.Peroestaramuchomejorsiincluyeranalgunaformadeaccederalcodigo.

    Fechapublicacin:2009082704:40:08

    Autor:

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 13/14

    [AlfredoQuiroz]Excelente!!

    Fechapublicacin:2009062306:48:36

    Autor:

    [raulrosenzvaig]Estariabuenoquealfinaldeltutorialsepuedabajarelwarconelcodigoyaqueamimeestacostandointegrarestosdosframeworksysuinstalacion,saludos

    Fechapublicacin:2009061106:49:03

    Autor:

    [PaulRomero]Interesantetuarticulo,comodicesseveunpococomplejoelApplicationContext,hubiesesidobuenoaclararunpocolasconfiguraciones,peroigualesmuybuenoelarticulo.

    Fechapublicacin:2009060201:09:02

    Autor:

    [KrisBelucci]Hi,goodpost.Ihavebeenwonderingaboutthisissue,sothanksforposting.

    Fechapublicacin:2009051205:19:03

    Autor:

  • 16/4/2015 Spring+Hibernate+Anotaciones=DesarrolloRpidoenJava

    http://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=desarrolloRapidoJava 14/14

    EstaobraestlicenciadabajolicenciaCreativeCommonsdeReconocimientoNocomercialSinobrasderivadas2.5

    IMPULSA Impulsores Comunidad Ayuda?

    sinclicks + + + + + + + +

    0personashantradoclicksaestapgina

    poweredbykarmacracy

    [Jorge]buenoastardesheleidoeltutorialymehaparecidomuybuenoperoestoyintentandomontarloenjboss4.2ymehansalidounoserroresdeconfiguracionconelicefaceletspodrianayudarmegracias

    Fechapublicacin:2008051406:10:25

    Autor:

    [Paco]Alex,muybueno.

    Copyright20032015AllRightsReserved|Textolegalycondicionesdeuso|Banners|PoweredbyAutentia|Contacto