Na een tijd met Struts gewerkt te hebben ben ik nu de mogelijkheden van Spring te onderzoeken. Tot nu toe bevalt het me zeer goed. Soms is het een beetje verwarrend dat op configuratie niveau alles een bean is, maar het controller + view gedeelte heb ik er grotendeels in zitten.
Ik ben me nu gaan richten op de laag naar de database toe. Mijn doel is om met zo min mogelijk code en zo schaalbaar mogelijke laag naar de database te bouwen. Ik wil eigenlijk alleen in de spring config willen opgeven wat voor type database ik wil gebruiken. Het voorbeeld wat onder de documentatie van Spring staat voldoet niet helemaal aan mijn eisen.
Als ik het goed begrepen heb zijn er in ieder geval 2 typen objecten nodig: DAO's en POJO's. De DAO klasse praat met de database en retourneerd de data in de vorm van POJO's. Maar, wat is een nette manier om de DAO's aan te spreken?, Ik heb dit gebaseerd op het Data Access Pattern die hieronder is afgebeeld:

Eigenlijk zou ik die zogenaamde Client het liefst met de interface van de DAO laten praten. De spring configuratie zou moeten bepalen welke implementatie hiervoor gebruikt moet worden.
Het voorbeeld gebruikt zogenaamde 'Managers' voor de communicatie met de DAO's. Deze worden geinstantieerd door een Controller en zijn in feite normale klassen die een collectie van POJO's returned. Zo is er bijv een CustomerManager die een methode getCustomers() of getCustomerById heeft. Is dit gebruikelijk?
Verder zit ik nog een beetje met het afhandelen van transacties. Het is natuurlijk niet wenselijk dat een bepaalde batch ( functionaliteit van de applicatie ) 2 keer wordt uitgevoerd. Ik heb me hier nog niet echt in verdiept, maar als iemand een mooi voorbeeld heeft dan hoor ik het graag
Doel van dit topic is om eigenlijk mijn eigen 'probleem' op te lossen maar het is natuurlijk ook heel interessant om hier een discussie te voeren over wat nu de 'mooiste' manier is om dit op te lossen.
Ik ben me nu gaan richten op de laag naar de database toe. Mijn doel is om met zo min mogelijk code en zo schaalbaar mogelijke laag naar de database te bouwen. Ik wil eigenlijk alleen in de spring config willen opgeven wat voor type database ik wil gebruiken. Het voorbeeld wat onder de documentatie van Spring staat voldoet niet helemaal aan mijn eisen.
Als ik het goed begrepen heb zijn er in ieder geval 2 typen objecten nodig: DAO's en POJO's. De DAO klasse praat met de database en retourneerd de data in de vorm van POJO's. Maar, wat is een nette manier om de DAO's aan te spreken?, Ik heb dit gebaseerd op het Data Access Pattern die hieronder is afgebeeld:

Eigenlijk zou ik die zogenaamde Client het liefst met de interface van de DAO laten praten. De spring configuratie zou moeten bepalen welke implementatie hiervoor gebruikt moet worden.
Het voorbeeld gebruikt zogenaamde 'Managers' voor de communicatie met de DAO's. Deze worden geinstantieerd door een Controller en zijn in feite normale klassen die een collectie van POJO's returned. Zo is er bijv een CustomerManager die een methode getCustomers() of getCustomerById heeft. Is dit gebruikelijk?
Verder zit ik nog een beetje met het afhandelen van transacties. Het is natuurlijk niet wenselijk dat een bepaalde batch ( functionaliteit van de applicatie ) 2 keer wordt uitgevoerd. Ik heb me hier nog niet echt in verdiept, maar als iemand een mooi voorbeeld heeft dan hoor ik het graag
Doel van dit topic is om eigenlijk mijn eigen 'probleem' op te lossen maar het is natuurlijk ook heel interessant om hier een discussie te voeren over wat nu de 'mooiste' manier is om dit op te lossen.
