Ich habe ein Projekt, das Spring verwendet und in ein paar Dutzend DAOs und zugehörige DTOs unterteilt ist. Ich verwende JdbcTemplate, aber nicht viel mehr, da es genau die Abstraktionsebene ist, mit der ich zufrieden bin.
Ich führe derzeit Lazy Loading auf meine DTOs, indem Sie einige ziemlich haarigen Code in ihre Getter.
Die grundlegende Logik ist: 1. Wenn das Feld nicht null ist, wird der Wert zurückgegeben und das Programm beendet. 2. Kontaktaufnahme mit dem entsprechenden DAO und Abruf der relevanten DTOs 3. Speichern Sie sie bis zum nächsten Mal.
Es funktioniert gut, außer dass meine bescheidenen DTOs mit einer ganzen Reihe von DAOs gekoppelt sind und nicht so POJOey sind.
Ein weiterer Codegeruch tritt auf, wenn ich die Logik im DAO platziere, da es sowohl CRUD für seine DTOs als auch Lazy Loading behandeln würde, und so wie ich es verstehe, sollten Objekte eine einzige Verantwortung haben.
Ich hoffe, dass es einen relativ einfachen Spring-Ansatz gibt, den ich verwenden kann, um ein Lazy Loader-Objekt zwischen den DAOs und den DTOs zu injizieren, um dies zu erreichen, aber jede andere Lösung würde für mich arbeiten.
Irgendwelche Ideen?