powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring, Получение настроек из базёнки.
10 сообщений из 10, страница 1 из 1
Spring, Получение настроек из базёнки.
    #38905698
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В БД хранятся настройки (код + значение), их достаточнго много. Необходимо их прикручивать к соответствующим полям.
Можно сделать бин, который будет уметь получать их по коду. Как-то так:

Код: java
1.
2.
@Value("#{propertyManager.findByCode('COME.CODE')}")
String somePropertyValue;


но хочется короче, что-то типа
Код: java
1.
2.
@SomeAnnotation("COME.CODE")
String somePropertyValue;


Как это можно реализовать?
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38905739
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши БуханиВ БД хранятся настройки (код + значение), их достаточнго много. Необходимо их прикручивать к соответствующим полям.
Можно сделать бин, который будет уметь получать их по коду. Как-то так:

Код: java
1.
2.
@Value("#{propertyManager.findByCode('COME.CODE')}")
String somePropertyValue;


но хочется короче, что-то типа
Код: java
1.
2.
@SomeAnnotation("COME.CODE")
String somePropertyValue;


Как это можно реализовать?

Написать самому обработчик аннотации?!

:-)
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38905756
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul,

Это вариант раз. Проблема в том, что я не совсем пока понял, как это органичнее реализовать в спринге.
Допускаю так же, что есть вариант номер два.
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38905786
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38905860
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши Буханиmad_nazgul,

Это вариант раз. Проблема в том, что я не совсем пока понял, как это органичнее реализовать в спринге.
Допускаю так же, что есть вариант номер два.

На сколько я понимаю Spring тут не причем.
Вам просто нужно написать свой обработчик аннотации.
Который бы брал ключ из аннотации, искал бы его в БД и ч/з ReflectionAP подставлял бы значение в поле.
Ну я бы думал в этом направлении :-)
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38906035
Саабразим Аль-каши Бухани
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще, начинаю подозревать, что аннотациями пользоваться не комильфо в данном случае. Пропертя же добавляются постоянно, а аннотации читаются единажды. Не перезагружать же сервер приложений каждый раз.
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38906042
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши БуханиПропертя же добавляются постоянно
хранение в файле. Какая тут динамика?
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38906048
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вернее в БД.
Делай сущность в БД "Параметры" - и всё.
Только всё обновить тоже не просто).
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38907431
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123,

как то так :

Код: java
1.
2.
3.
4.
5.
public interface SiteKeyConfigService {

    Map<String, String> getSiteKeyConfig();
 
}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
@Entity
public class SiteKeyConfig{

private String key;
private String value;


}



Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
@Repository
public class DefaultSiteKeyConfigService extends DefaultBindableDAO<SiteKeyConfig> implements SiteKeyConfigService{
    
    private ConcurrentMap<String, String> siteConfig;
    private Lock lock = new ReentrantLock();
    
   @PostConstruct
   public void postConstruct(){
       load();
   }
   
   @Transactional
    public void load() {
       ConcurrentMap<String, String>  config = new ConcurrentHashMap<String, String>();
        //TODO запросы select
        List<SiteKeyConfig> siteKeyConfigs =  getByCriteria(detachedCriteria, 0, 100);
        for (SiteKeyConfig siteKeyConfig : siteKeyConfigs) {
           config.put(siteKeyConfig.getKey(),siteKeyConfig.getValue());
       }
        
     
        
       this.siteConfig = config;
    }
    
    @Override
    public Map<String, String> getSiteKeyConfig() {
        return Collections.unmodifiableMap(siteConfig);
    }
    

    public String getValue(String key){
        if(siteConfig != null)
            return siteConfig.get(key);
        return null;
    }
    
    @Override
    public SiteKeyConfig save(SiteKeyConfig cfg) {
        cfg = super.save(cfg);
        load();
        return cfg;
    }
    
    
   // @Scheduled(fixedDelay = 60 * 1000)
    public void updateSiteConfig() {
        load();
    }




где после изменения в базе или на сервере перечитывать весь конфиг ! или делать это по таймеру Scheduled ?!
...
Рейтинг: 0 / 0
Spring, Получение настроек из базёнки.
    #38908556
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Саабразим Аль-каши Бухани, посмотри Spel. Может там уже есть готовое решение.
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Spring, Получение настроек из базёнки.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]