sql >> Database teknologi >  >> NoSQL >> MongoDB

DAO og afhængighedsindsprøjtning, rådgivning?

Et "pluggbart" DAO-lag er normalt/altid baseret på en grænseflade DAO. Lad os for eksempel overveje en ganske generisk simpel en:

public interface GenericDAO <T, K extends Serializable> {  
    List<T> getAll(Class<T> typeClass);   
    T findByKey(Class<T> typeClass, K id);  
    void update(T object);  
    void remove(T object);  
    void insert(T object);  
}

(Dette er, hvad du har i Morphias generiske DAO )

Derefter kan du udvikle forskellige flere generiske DAO-implementeringer, hvor du kan finde forskellige felter (afspejlet i konstruktørparametre, sættere og gettere osv.). Lad os antage en JDBC-baseret:

public class GenericDAOJDBCImpl<T, K extends Serializable> implements GenericDAO<T, K extends Serializable> {
    private String db_url;

    private Connection;
    private PreparedStatement insert;
    // etc.
}

Når først den generiske DAO er implementeret (for et konkret datalager), ville det være umuligt at få en konkret DAO:

public interface PersonDAO extends GenericDAO<Person, Long> {

}

og

public class PersonDAOJDBCImpl extends GenericDAOJDBCImpl<Person, Long> implements PersonDAO {

}

(BTW, hvad du har i Morphias BasicDAO er en implementering af den generiske DAO for MongoDB).

Den anden ting i den pluggbare arkitektur er valget af den konkrete DAO-implementering. Jeg vil råde dig til at læse kapitel 2 fra Apress:Pro Spring 2.5 ("Putting Spring into "Hello World") for gradvist at lære om fabrikker og afhængighedsinjektion.



  1. Udgiv abonner med nodejs og redis(node_redis)

  2. Hvordan fjerner jeg nøgler?

  3. MongoDB Map/Reduce Array aggregeringsspørgsmål

  4. Billede returneret fra REST API vises altid brudt