Nous transférons notre implémentation héritée au modèle Spring IBatis. Je suis un peu coincé dans la modélisation de ces objets de manière plus propre en utilisant le modèle de printempsInitialisation paresseuse du cache avec Spring IBatis
Disons que j'ai deux classes [Tous les deux sont singleton]
DAOImpl met en œuvre DAOInterface
CacheDAOImpl implémente DAOInterface
Code snip animaux montrant l'initialisation de l'objet dans CacheDAOImpl
.....
private static CacheDAOImpl ourInstance = new CacheDAOImpl();
public static CacheDAOImpl getInstance()
{
return ourInstance;
}
private CacheDAOImpl()
{
// intialiazes all caches
}
extrait de code de DAOImpl montrant la CacheDAOImpl utilisation d'objets
private DAO getCacheDAO()
{
return CacheDAOImpl.getInstance();
}
@Override
public SomeObject lookUpId()
{
return getCacheDAO().lookUpId();
}
Dans le cache de mise en œuvre ci-dessus est initialisé uniquement lorsqu'une méthode est invoquée dans DAOImpl alors qu'avec le modèle d'initialisation de Spring, pouvons-nous le faire? Lazy-init peut ne pas fonctionner ici car l'objet DAOImpl sera toujours accessible par le bean non-paresseux
@Bozho Merci. Il sera toujours accessible par un haricot non-paresseux. Je vais modifier le message pour plus de clarté. – Chandra