| 
 | 
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton, Да. Бардак пока с идеологией. Ведь тема про что? ПЕРЕБОР АННОТАЦИЙ СПРИНГА ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 13:27 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Nixic Хех, ну да вариантов много. В общем выложу код, переименую класс, чтоб не палиться :) Задача такая - не давать стартовать сервису, если не доступна БД.  Этот вопрос - вообще не имеет отношения к Спрингу. Моя мысль такова - "Show must go on!" Спринг должен стартовать в любом случае. Есть база или нет. Пул должен перейти в некое закрытое состояние. И какое-то время (минуту или больше) давать мнговенный код ошибки на любую попытку получить коннекшек к БД. Здесь в помошь шаблон - аварийный размыкатель - Cirquit Breaker для предотвращения долбёжки или висячих сокетов в направлении дохлой базы. https://spring.io/guides/gs/circuit-breaker/ Моя идея станет более понятна если представить что База это просто очередной ресурс которых сотни подключенных к приложению и гарантировать все-все из них поднятыми очень проблемно. Полюбому кто-то будет отваливаться и падать. Теория надёжности как-бе говорит нам. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 13:33 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp SpringMan, Аннотация это конфигурирование на сегодняшний день. Или декларативное программирование. Поэтому фраза: "не надо аннотаций но надо конфигурации" вообще запутывает честного программиста. А я говорил еще шире - какого рожна спринг лезет в базу. Хоть и скриптами? Аннотации это часть java языка, конфигурация spring.datasource.continue-on-error - это запись в properties/yaml файлике. Вроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит. Наличие возможности, даже такой, лучше, чем ее отсутствие PetroNotC Sharp mayton, Да. Бардак пока с идеологией. Ведь тема про что? ПЕРЕБОР АННОТАЦИЙ СПРИНГА Вот то, что мы полдня обсуждаем, это не относится к проблеме ТС-а. У него одна проблема - предшественник до него написал одну лишнюю аннотацию, которая не нужна. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 13:45 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Увы. Таково течение коллективного разума. Он не всегда обсуждает то что надо автору. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 13:47 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SpringMan, Да. Конечно. Мы обсуждаем фразу - название темы. Буквально. "Спринг много на себя берет". (с) авторНаличие возможности, даже такой, лучше, чем ее отсутствие В архитектуре эта фраза антипаттерн. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 13:56 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SpringMan, авторВроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит.скажи назначение приватных полей. Пусть кто хочет лезет, кто хочет не лезет ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 14:01 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Да, это очень похоже на антипаттерн. Но тут недавное по-моему asv79 с проблемой бегал. Надо обновить базу, доступа до нее нет, и фиг знает у кого он есть. Есть два пути: 1) Писать каждый раз кучу писем с кучей согласований, чтобы взяли твой скрипт и прогнали фиг знает кто, фиг знает когда и фиг знает какой результат у него будет 2) Встроить это в приложение, которое ты можешь обновлять куда быстрее Первый способ конечно правильнее, но через какое-то время можно выбрать второй, как путь с меньшим сопротивлением PetroNotC Sharp SpringMan, авторВроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит. Пусть кто хочет лезет, кто хочет не лезет Имхо сравнение не совсем корректно. Спринг/приложение уже знает как попасть в базу. Если оно будет выполнять скрипты никакой дополнительной приватности не нарушается ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 14:10 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  SpringMan, Откуда оно что знает? У меня в бд имеет доступ jndi или пул. Но спринг оказывается что то там знает.... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 14:21 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  https://www.codeflow.site/ru/article/spring-persistence-jpa-jndi-datasource  Тут вроде спринг никуда не лезет и спокойно уступает место JNDI, JPA, HIBER.... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 14:27 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp, А больше ничего и не надо. Через jndi/pool можно точно также вызвать нужный скрипт, как и в спринговом приложении. И тот же спринг можно так же натравливать на jndi) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 17.05.2020, 14:31 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Nixic Хех, ну да вариантов много. В общем выложу код, переименую класс, чтоб не палиться :) Задача такая - не давать стартовать сервису, если не доступна БД.  Да, меня именно эта связка аннотаций смутила: @Bean @PostConstruct а инжект Environment'а - фиг с ним :) Не истины ради, а флейма для. Проверка, на существование БД. Если нету БД, то приложение падает. (Для Spring Boot, на Kotlin) Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. В принципе в бин можно добавить проверки, даже если есть соединение. Главное Exception выкинуть. В данном случае exception кидает "dataSource.connection" ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 07:56 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  а, вы про чистый Спринг. Там не проверял. Но в Spring Boot 100% если база не доступна, приложение не стартанёт. А какой у вас юскейс? Зачем хотите чтобы падало если базы нет? База не всегда доступна (если сеть упала или базу перезагрузили). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 09:42 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Zzz79, Чем плохо декларативное программирование? Тем что ты становишься конфигурастом а не программистом. Спринг это же клей. Вот ты и клеишь программу. Поэтому ты не знаешь что такое FK и оператор new object. Что такое наследование и композиция. .... Поэтому почему то становится проблемой "огромные куски дубляжа". Проблема не раскрыта. Имхо ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 19:00 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  У декларативности есть дефект. Она - ничего нем не говорит о порядке исполнения операций. Конешно полагаясь на хронологический порядок аннотаций мы можем предполагать что процессор аннотаций обработает их именно так. Но что делать когда этих процессоров несколько. Lombok и Spring (примеру) умеют читать свой домен аннотаций. Но если возникает вопрос "кто первый процессит" - то здесь декларативное программирование даёт сбой. Оно (декларативное) - не знает кто первый. Нет у него такой опции как ранг аннотаций или ранг процессинга. Тоже самое про maven. Maven - делкаративен. Но нам чисто по человечески иногда важно чтобы в фазе билда работал сначала этот плагин а потом этот. Хотя они декларированы как одно-ранговые. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 19:04 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton чисто по человечески иногда важно чтобы в фазе билда работал сначала этот плагин а потом этот. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 19:15 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton, Да можно и порядок и приоритет в принципе закодить. Но препроцессинг ведь. Заменяем код своими значками @мойСуперКлючикСтрокаЗначок(.... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 19:17 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  chpasha, Ты тоже прав. Нужно в меру. Нужно чтобы спринг знал меру)))) ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 19:20 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ну... яб сказал что самый первый вопрос которым должны мордовать и мучать бедного джуна на техническом ревью - это Spring и жизненный цикл бина. Про что это? Это именно про порядок инициализации заинжекченых полей и пропертей и пост-конструкторов и прочего декралативного дерьма. Порядок сцуко - важен. На порядке инициализации 80% багов прилетает. Особенно хреново когда есть race-conditions. И мультипоточка. И какие-то бл%дские статические поля переменных. Там - вобще конь не валялся. И как всегда на тестах хорошо а в продуктиве - падает. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 19:20 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  PetroNotC Sharp mayton, Да можно и порядок и приоритет в принципе закодить. Но препроцессинг ведь. Заменяем код своими значками @мойСуперКлючикСтрокаЗначок(.... Это - еще хуже. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 19:21 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Проблема не в аннотациях, что вы к ним привязались? Очевидный факт упускаете, что проблема в том что реализация этих аннотаций не видна программисту, т.к. она делается на этапе инициализации контекста и создания проки классов. Это - основная проблема. Т.к. документация не всегда понятна и полна в Спринге. Да и всегда удобно код почитать. А тут - не получится. Вот за это я оч. уважаю AST аннотации\трансформации - т.к. там можно подебажить и посмотреть что конкретно происходит. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 21:38 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ломбок это пародия на Груви. А так я привык читать код библиотек которые использую. Но в случае со Спрингом уже тоже свыкся... Хотя давно могли также Intellij добавить поддержку просмотра gclib обработчиков аннотаций из кода приложения ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 18.05.2020, 22:45 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Тут другое интересно. Насколько я помню, при разработке джавы один из лозунгов был что то вроде "как написано, так и работает". Под эту лавочку туда не стали добавлять плюсовые макросы, которые могут превратить код в адок. И даже псевдонимы типов не сделали...  А потом взяли и добавили рефлексию, аннотации, джава-агенты. В итоге получили тот же самый адок, только в профиль, и теперь все соревнуются, кто больше аннотаций изобретет и понавешает. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2020, 08:03 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Но самый перебор, это конечно не аннотации. Самый перебор - это когда поведение зависит от наличия той или иной зависимости без какой либо явной конфигурации. Вот где абсолютное зло. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2020, 08:09 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ржавый гвоздь Тут другое интересно. Насколько я помню, при разработке джавы один из лозунгов был что то вроде "как написано, так и работает". Под эту лавочку туда не стали добавлять плюсовые макросы, которые могут превратить код в адок. И даже псевдонимы типов не сделали...  А потом взяли и добавили рефлексию, аннотации, джава-агенты. В итоге получили тот же самый адок, только в профиль, и теперь все соревнуются, кто больше аннотаций изобретет и понавешает. Типа рефлексия это плохо?:) А как вы без неё сделаете модульное приложение расширяемое? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2020, 09:12 | 
  
  
  
   | 
||
| 
 
Аннотации спринга, по-моему перебор, не? :) 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  dakeiras Типа рефлексия это плохо?:) А как вы без неё сделаете модульное приложение расширяемое? Не всегда и не везде плохо. Но когда ее используют и где надо и где не надо - от нее больше вреда, чем пользы. Засилие аннотаций - типичный вредный пример, а какой нибудь сериализатор - вполне хороший. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 19.05.2020, 09:19 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&msg=39959235&tid=2120799]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    50ms | 
get topic data:  | 
    12ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    59ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 12ms | 
| total: | 166ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.