Olá pessoal estou com uma dúvida aqui em referencia circular tenho dois Daos em meu sistema que 1 usa o outro e vice versa!!
CacheDao e ConfiguracaoSistemaDao
CacheDao é responsavel por acesso a camada de cache (GAE) e ConfiguracaoSistemaDao por acesso as configuracoes do sistema , só que eu queria guardar em configuracoes do sistema se o esquema de cache está ativo ou não !!!
public class ConfiguracaoSistemaDao{
private CacheDao daoCache;
public ConfiguracaoSistemaDao(CacheDao daoCache){
this.daoCache = daoCache;
}
public String getConfig(String key){
//Código utilizando o cache para não ficar indo a banco toda vez pegar o valor de uma configuração
String value = daoCache.get(key);
if(value==null) //Executa query e coloca no cache
return value;
}
}
public class CacheDao{
private ConfiguracaoSistemaDao daoConfiguracaoSistema;
public CacheDao(ConfiguracaoSistemaDao daoConfiguracaoSistema){
this.daoConfiguracaoSistema = daoConfiguracaoSistema;
}
public String get(String key){
//Aqui preciso de uma variavel que guardaria em configuracoes para ver se o esquema de cache está ativo ou não
if(configuracao.getConfig("CACHE_ENABLED").equals("S") {
return .......;
}
return null;
}
}
Tem como resolver esse problema de referência circular usando DI ?? Pois o Spring fica gerando a exception de circular reference ??? O que realmente acontece na verdade pa um precisa do outro pra instanciar … tenho que instanciar na mão 1 dos lados ??