ESTE É UM POST TÉCNICO
O assunto de hoje é sobre a necessidade de se carregar de forma dinâmica atributos em uma aplicação (geralmente web) sem precisar fazer restart do server. Fazendo restart do server muitos leitores poderão falar sobre o ServletContext, que se você deixar o código preparado pode receber mudanças e no restart ele vai ler as mudanças e aplica-las. Estamos falando aqui de aplicações que não podem parar e não podem ter o "tempo do restart" de folga. Umas solução bastante simples é usar a lib Apache Common Configuration ( link ). Com essa biblioteca você pode setar vários tipos de "estratégias de reload" de configurações. Vou falar das 3 principais: FileChangedReloadingStrategy, InvariantReloadingStrategy, ManagedReloadingStrategy. A FileChangedReloadingStrategy é a mais utilizada. Toda vez que você ler um arquivo de properties, ele verificar se essa nova leitura bate com a última leitura, se não bater, ele recarrega os atributos. A InvariantReloadingStrategy é uma estratégia para NUNCA recarregar os atributos, quer dizer, uma vez em memória não serão recarregados até o próximos restart da aplicação. E por último o ManagedReloadingStrategy em que você pode "manualmente" fazer o reaload dos properties em seu código. Vamos ao exemplo:
PropertiesConfiguration config = new PropertiesConfiguration("minhasPropiedades.properties");
config.setReloadingStrategy(new FileChangedReloadingStrategy()); // se desejar usar essa estratégia.
E... só. Fácil não? Agora você tem na sua aplicação a possibilidade de recarregar atributos de um arquivo de properties sem precisar fazer restart da mesma.
Fim.
ps: estou pensando em alguns temas não técnicos para escrever mas não estou com ideias maduras. Até lá vai ser coisas técnicas mesmo. Adiós!
Nenhum comentário:
Postar um comentário