2013-03-11 12 views
7

Właśnie odkryłem, że konfiguracja commons commons może odczytywać właściwości z DataSource, ale nie buforuje ich. Moja aplikacja musi często odczytywać właściwości i ma za każdym razem spowalniać dostęp do bazy danych.Alternatywę dla konfiguracji common commach do odczytu właściwości z bazy danych

Mam aplikację wielbłądzie, która wysyła wszystkie wiadomości do tras, które kończą się moimi fasolami niestandardowymi. Te fasole są tworzone z prototypem zakresu (wierzę w OOP ...) i będą/będą musiały odczytać niektóre właściwości i źródło danych (które czyta z adresu url/name/etc), które zależy od bieżącego użytkownika z sql db . Każda otrzymana wiadomość tworzy komponent bean, więc właściwości są ponownie czytane. Niestety nie jestem wolny, aby wybrać miejsce, w którym można odczytywać właściwości, ponieważ obecnie istnieje inne oprogramowanie (GUI) niezapisane przeze mnie, które jest User/zarządca właściwości, który zapisuje do db. Więc muszę odczytać z niego właściwości.

Czy możesz zaproponować mi alternatywę?

Dzięki Mario

+0

Jaki jest przypadek użycia? Jak często czytasz dane, jak często się zmieniają, gdzie są początkowo przechowywane? – bdares

+0

Czy możesz zaimplementować prostą pamięć podręczną? Nawiązujesz do ostatniego komentarza dla tego problemu. https://issues.apache.org/jira/browse/CONFIGURATION-180?focusedCommentId=12491813&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-12491813 – longhua

+0

Podany link "niestety" to łatka do wspólnych, której nie chcę stosować. Teraz chciałbym zapytać czy mogę podklasować DatabaseConfiguration (zakładam, że powinno to być możliwe) – mgiammarco

Odpowiedz

6

Można użyć projekt Netflix Archaius, który dodaje zachowanie buforowania szukasz, jak również dynamiczne możliwości odświeżania. Archaius opiera się na konfiguracji Commons.

Tak więc, zamiast podklasy DatabaseConfiguration, można użyć Dynamic ArchConfiguration Archaius, który rozszerza Commons 'AbstractConfiguration. Ta klasa będzie cache'ować dowolne źródło, które chcesz, i odświeżyć właściwości w określonym przedziale czasu za pomocą ich klasy planowania sondowania.

Jedyną klasą, którą należy zaimplementować, jest obiekt PolledConfigurationSource, który pobiera dane z bazy danych i umieszcza je w mapie. Powinien być całkiem prosty.

https://github.com/Netflix/archaius/wiki/Users-Guide

Powiązane problemy