java - Service Layer inject multiple DAO in practice -


here design problem between dao layer , service layer:

in dao layer, there dao classes called: dao1, dao2, dao3 ...

in service layer, there service classes called: service1, service2, service3 ...

service1 need inject dao1, dao2, dao3

service2 need inject dao2, dao3, dao4

service3 need inject dao3

...

example creating user:

userservice need inject userdao create user, userservice need inject logdao record system log information.

it seems there repeating work need do. there solution in practice? using spring framework. using @resource annotation inject these dao in service class.

my solution is: inject dao class (dao1, dao2, dao3 ...) daocollection class, service1, service2, service3... extends daocollection class. approach?

thx

you'd have define daos services use anyway, you'd have 'repeating' work extend.

depending on framework use (if any) declaration shouldn't overhead (to type).

example in ejb 3+:

class service1 {   @ejb private dao1 dao1;   @ejb private dao2 dao2;   @ejb private dao3 dao3;   ... } 

i'd shouldn't create common superclass , inject possible daos there. make harder understand (why daos there?, used?, etc.) , might have performance issues, depending on framework in use (you might inject every dao each service , create big pool of unused dao instances).


Comments

Popular posts from this blog

c# - how to write client side events functions for the combobox items -

exception - Python, pyPdf OCR error: pyPdf.utils.PdfReadError: EOF marker not found -