Vra

Ek is tans probeer om te kry in die Java-EE ontwikkeling met die Lente raamwerk.As ek'n nuwe Lente, dit is moeilik om te beelding hoe'n goeie bestuur van die projek moet begin af.

Het jy enige die beste praktyke, advies of groot DOEN NOTs vir'n voorgereg?Hoe het jy begin met die Lente - groot projek of'n klein handleiding-soos aansoeke?Wat tegnologie het jy gebruik om die regte weg:AOP, komplekse Hiberneer...

Was dit nuttig?

Oplossing

Klein wenk - Ek het gevind dat dit nuttig om modularize en duidelik benoem my Lente XML konteks lêers wat gebaseer is op aansoek kommer. Hier is 'n voorbeeld vir 'n web artikels wat ek gewerk het op:

  • MyProject / src / main / resources / spring /
    • datasource.xml -. My enkele data bron boontjie
    • persistence.xml - My DAOs / Repositories. Hang af van datasource.xml bone.
    • services.xml - Service laag implementasies. Dit is gewoonlik die bone waaraan ek aansoek transactionality met behulp van AOP. Hang af van persistence.xml bone.
    • controllers.xml - My Lente MVC controllers. Hang af van services.xml bone.
    • views.xml -. My oog implementering

Hierdie lys is nie volmaak nie volledig nie, maar ek hoop dit illustreer die punt. Kies watter benaming strategie en korrelig beste werk vir jou.

In my (beperkte) ondervinding, wat ek gesien het hierdie benadering yeild die volgende voordele:

Duideliker argitektuur

Dit is duidelik dat die naam konteks lêers gee diegene wat nie vertroud met jou projek struktuur 'n redelike plek om te begin soek na boontjie definisies. Kan maak opsporing omsendbrief / ongewenste afhanklikhede 'n bietjie makliker te maak.

Help domein ontwerp

As jy wil 'n boontjie definisie voeg, maar dit beteken nie goed pas in enige van jou konteks lêers, miskien is daar 'n nuwe konsep of kommer opkomende? Voorbeelde:

  • Veronderstel jy wil om jou Service laag transaksionele met AOP maak. Het jy daardie boontjie definisies toe te voeg tot services.xml, of sit hulle in hul eie transactionPolicy.xml? Praat dit oor met jou span. Indien u transaksie beleid wees plug?
  • Voeg Acegi / Lente Security bone om jou controllers.xml lêer, of skep 'n security.xml konteks lêer? Het jy 'n ander sekuriteit vereistes vir verskillende ontplooi / omgewings?

integrasie toets

Jy kan bedraad 'n subset van jou aansoek vir integrasie toets (ex: gegewe die bogenoemde lêers, om die databasis wat jy nodig het om net datasource.xml en persistence.xml bone skep toets)

.

Spesifiek, kan jy 'n integrasie toets klas annoteer as sodanig:

@ContextConfiguration(locations = { "/spring/datasource.xml" , "/spring/persistence.xml" })

Werk goed met boontjies Lente IDE se Grafiek

Met baie gefokus en goed genoem konteks lêers maak dit maklik om persoonlike BeansConfigSets skep om die lae van jou jeug met behulp van die lente IDE se bone Grafiek . Ek het hierdie gebruik voor om nuwe spanlede 'n hoë-vlak oorsig van organisasie ons aansoek se gee.

Ander wenke

Fokus eers op die hart van die Lente:Afhanklikheid Inspuiting.Sodra jy sien al die maniere wat DI gebruik kan word, dan begin dink oor die meer interessante stukke soos AOP, Remoting, JDBC Templates ens.So my beste bietjie van die raad is laat jou gebruik van die Lente groei uit van die kern.

Beste praktyk?As jy met behulp van die standaard XML config, die bestuur van die grootte van die individuele lêers en kommentaar lewer hulle oordeelkundig.Jy mag dalk dink dat jy en ander sal perfek verstaan jou boontjie definisies, maar in die praktyk is hulle is'n bietjie moeiliker om terug te kom om as'n gewone ou java-kode.

Goeie geluk!

In die eerste plek Lente is oor modulariteit en werk die beste as een fokus op die skryf van klein komponente wat een ding doen en doen dit goed.

As jy volg die beste praktyke in die algemeen soos:

  • Definisie van 'n koppelvlak eerder as abstrakte klasse
  • Die maak van tipes onveranderlike
  • Hou afhanklikhede so min as moontlik vir 'n enkele klas.
  • Elke klas moet een ding doen en doen dit goed. Big monolitiese klasse suig, hulle is moeilik om te toets en moeilik om te gebruik.

As u komponente is klein en volg die dogmas bo hulle maklik moet wees om te bedraad en speel met ander dinge. Die bogenoemde punte is natuurlik ook waar van die lente raamwerk self.

PS

Moenie luister na die punte hierbo, hulle praat oor hoe om alles te doen. Sy meer belangrik om te leer hoe om eerder dink as hoe om iets te doen. Mens kan dink, iets herhaal is nie slim, denke is.

Ek het eintlik baie graag die lente .. Dit was 'n vars briesie van lug in jou gemiddelde J2EE Java Beans ..

Ek beveel die implementering van die voorbeeld Lente bied:

http://static.springframework.org/docs/ lente-MVC-stap-vir-stap /

Ook, het ek besluit om Full Monty gaan en Hibernate om my Lente aansoek gevoeg;), omdat die lente bied uitstekende ondersteuning vir Hibernate ...:)

Ek het 'n MOENIE egter wat ek geleer het op die harde manier (produk in produksie) ... As jy net die Kontroleur koppelvlak implementeer, en terug te keer 'n ModelAndView voorwerp met 'n paar data soos bepaal met die koppelvlak, Lente doen garbadge versamel diegene hulpbronne, vir drieë aan diegene data kas. So wees versigtig om groot data in daardie ModelAndView voorwerpe sit, want hulle sal hog jou bediener geheue vir so lank as wat die bediener is in die lug so gou as wat bladsy is beskou ...

hier Begin - ek eintlik dink dis een van die beste sagteware ontwikkeling boeke wat ek gelees het
. Expert Lente MVC en web Flow

Hier is die nuwe-Annotation gebaseer opset vir MVC klasse. Dit is deel van die lente 2.5. Met behulp van Annotation gebaseer klasse gaan skryf Eenheid maak toetse 'n heck van 'n baie makliker. Ook in staat is om af te sny op die bedrag van XML is 'n goeie ding.

O ja Eenheid Toetse - as jy die gebruik van die lente, jy beter Eenheid Toets. :) Skryf Eenheid toetse vir al jou Web en Service Layer klasse.

Lees meer oor Domain Gedryf Design. Die feit dat jy Domain Object klasse kan gebruik op alle vlakke van 'n lente Aansoek beteken dat jy gaan 'n baie kragtige Domain Model hê. Hefboom dit.

Maar wanneer die gebruik van jou domein Object klasse vir vorm bevolking, jy sal wil hê om in ag van die onlangse sekuriteit kommer oor die lente Framework neem. 'n Bespreking oor die Server Side onthul die pad na die gat toe te maak in die kommentaar.

'n goeie manier om te begin is om te konsentreer op die "Springframework". Die lente portefeulje het gegroei tot 'n groot hoop van projekte rondom verskeie aspekte van Enterprise sagteware. Vashou aan die kern aan die begin en probeer om die konsepte te begryp. aflaai die nuutste binaries en check petclinic voorbeeld Lente se sodra jy vertroud is met die kern is. Dit gee nogal 'n goeie oorsig van die verskillende projekte SpringSource te bied.

Hoewel die dokumentasie is baie goed, ek ' d beveel 'n boek nadat jy die konsepte van die kern begryp. Wat ek het 'n probleem met die dokumentasie gevind, is dat dit nie in diepte en kan jy nie gee al die besonderhede wat jy nodig het.

"... Watter tegnologie het jy dadelik gebruik: AOP, komplekse Hibernate ..." - ek sou sê 'n beter vraag sou wees om te vra wat mense nie dadelik gebruik. Ek sal die voorbeelde wat jy noem om die lys te voeg.

Lente MVC en JDBC sjabloon sal vir My 'n beginspan aanbevelings. Jy kan 'n baie lang pad om te gaan net met diegene.

My aanbeveling sou wees om die lente argitektoniese aanbevelings getrou volg. Gebruik hul lae idees. Maak seker dat jou web laag is heeltemal afneem van die res. Jy doen dit deur die verhuring van die web vlak interaksie met die agterkant net deur die diens laag.

As jy wil hê dat die diens laag hergebruik, 'n goeie aanbeveling is om dit bloot te stel met behulp van die lente "kontrak eerste" web dienste. As jy begin met die XML-boodskappe wat jy heen en weer beweeg, kan u kliënt en bediener heeltemal ontkoppelde.

Die IDE met die beste Lente ondersteuning is IntelliJ. Dit is die moeite werd om 'n paar dollar.

Terwyl sy is jare gelede het ek gebruik die lente, en ek kan nie sê ek is 'n fan van dit, ek weet dat die App Fuse instrument ( https://java.net/projects/appfuse/ ) het nuttig om mense te help bootstrap in terme van die opwekking van al die artefakte wat jy nodig het om aan die gang.

Die lente is ook baie oor die toets eenheid en dus toetsbaarheid van jou klasse. Dit beteken basies dink oor modularisatie, skeiding van kommer, verwys na 'n klas deur koppelvlakke ens.

As jy net op soek na ploeteraars in dit 'n bietjie en kyk of jy dit wil hê, ek raai wat begin met die DAO laag, met behulp van die lente se JDBC en / of Hibernate ondersteuning. Dit sal jou bloot te stel aan 'n groot deel van die kern konsepte, maar doen dit op 'n manier wat maklik is om te isoleer van die res van jou jeug. Dit is die roete wat ek gevolg het, en dit was goed opwarm voor om in die bou van 'n volledige aansoek met die lente.

Met die vrystelling van die lente 2.5 en 3.0, ek dink een van die belangrikste beste praktyke om voordeel te trek uit nou is die lente notas. Notas vir Controllers, Dienste, en Repositories kan red jy 'n ton van die tyd, toelaat om te fokus op die besigheid logika van jou jeug, en kan potensieel alles wat jy al jou voorwerp gewone ou Java voorwerpe (POJOs) maak.

Gelisensieer onder: CC-BY-SA met toeskrywing
Nie verbonde aan StackOverflow
scroll top