14
Entra en Adictos a través de Entrar Email Contraseña Registrarme Olvidé mi contraseña Inicio Quiénes somos Formación Comparador de salarios Nuestros libros Más » Estás en: Inicio Tutoriales Spring + Hibernate + Anotaciones = Desarrollo Rápido en Java Síguenos a través de: Catálogo de servicios Autentia Últimas Noticias » 2015: ¡Volvemos a la oficina! » Curso JBoss de Red Hat » Si eres el responsable o líder técnico, considérate desafortunado. No puedes culpar a nadie por ser gris » Portales, gestores de contenidos documentales y desarrollos a medida » Comentando el libro Start up Nation, La historia del milagro económico de Israel, de Dan Senor & Salu Singer Histórico de noticias Últimos Tutoriales » ByteCode: ¿Sabes lo que realmente programas en Java? » Pop Art al estilo Andy Ver todos los tutoriales del autor Alejandro Pérez García Alejandro es socio fundador de Autentia y nuestro experto en J2EE, Linux y optimización de aplicaciones empresariales. Ingeniero en Informática y Certified ScrumMaster Seguir a @alejandropgarci 1,145 seguidores Si te gusta lo que ves, puedes contratarle para darte ayuda con soporte experto, impartir cursos presenciales en tu empresa o para que realicemos tus proyectos como factoría (Madrid). Puedes encontrarme en Autentia: Ofrecemos servicios de soporte a desarrollo, factoría y formación. Fecha de publicación del tutorial: 20080514 Tutorial visitado 147.412 veces Descargar en PDF Spring + Hibernate + Anotaciones = Desarrollo Rápido en Java Creación: 09052008 Índice de contenidos 1. Introducción 2. Entorno 3. La aplicación 4. La capa de persistencia 4.1. Las entidades 4.2. El DAO 5. La capa de negocio 6. La capa de control 7. La capa de presentación 8. Los ficheros de configuración 8.1. hibernate.cfg.xml (configuración de Hibernate) 8.2. applicationContext.xml (configuración de Spring) 8.3. facesconfig.xml (configuración de JSF) 9. Diferencia entre las anotaciones @Repository, @Service, @Controller 10. Conclusiones 11. Sobre el autor 12. Colaboraciones 1. Introducción Uno de los grandes problemas que tiene hoy en día el desarrollo de aplicaciones Web en Java es que el ciclo de desarrollo es, en muchas ocasiones, demasiado largo (o por lo menos más largo de lo que nos gustaría ;). Debido a este problema han surgido alternativas del estilo de Ruby on Rails (http://www.rubyonrails.org/) o incluso Google App Engine (http://code.google.com/appengine/) una alternativa que propone Google, basada en el lenguaje Python. Todas estas alternativas pueden resultar muy interesantes, pero suelen estar basadas en lenguajes con chequeo de tipos débil, o trasladando el chequeo de tipos a tiempo de ejecución (como Python), lo que provoca que puedan ser muy útiles para hacer rápidamente pequeñas aplicaciones o prototipos, pero que se pueden convertir en un gran problema cuando queremos construir aplicaciones medianas o grandes donde intervienen varias personas o incluso equipos en el proceso de desarrollo. Para este caso de aplicaciones medianas o grandes y grupos de desarrollo colaborativos, se hace DIPLOMADO A DISTANCIA Cursos y Programas en línea, Diplomados en diver

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

Embed Size (px)

DESCRIPTION

tip

Citation preview

  • 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)

    [email protected],similara@Repositoryqueyahabamosvistoantes.Estamosindicandoqueestaesunaclaserelacionadaconlacapadeservicio(clasesdenegocio),yquedebeserunSingleton.

    [email protected],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:

    [email protected],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:[email protected]

    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