powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Аннотации спринга, по-моему перебор, не? :)
25 сообщений из 131, страница 2 из 6
Аннотации спринга, по-моему перебор, не? :)
    #39958573
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да. Бардак пока с идеологией.
Ведь тема про что?
ПЕРЕБОР АННОТАЦИЙ СПРИНГА
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958574
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic
Хех, ну да вариантов много. В общем выложу код, переименую класс, чтоб не палиться :) Задача такая - не давать стартовать сервису, если не доступна БД.


Этот вопрос - вообще не имеет отношения к Спрингу. Моя мысль такова - "Show must go on!"

Спринг должен стартовать в любом случае. Есть база или нет. Пул должен перейти в некое
закрытое состояние. И какое-то время (минуту или больше) давать мнговенный код ошибки
на любую попытку получить коннекшек к БД.

Здесь в помошь шаблон - аварийный размыкатель - Cirquit Breaker для предотвращения
долбёжки или висячих сокетов в направлении дохлой базы.

https://spring.io/guides/gs/circuit-breaker/

Моя идея станет более понятна если представить что База это просто очередной ресурс
которых сотни подключенных к приложению и гарантировать все-все из них поднятыми
очень проблемно. Полюбому кто-то будет отваливаться и падать. Теория надёжности
как-бе говорит нам.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958577
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp
SpringMan,
Аннотация это конфигурирование на сегодняшний день.
Или декларативное программирование.
Поэтому фраза: "не надо аннотаций но надо конфигурации"
вообще запутывает честного программиста.
А я говорил еще шире - какого рожна спринг лезет в базу. Хоть и скриптами?

Аннотации это часть java языка, конфигурация spring.datasource.continue-on-error - это запись в properties/yaml файлике. Вроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит. Наличие возможности, даже такой, лучше, чем ее отсутствие

PetroNotC Sharp
mayton,
Да. Бардак пока с идеологией.
Ведь тема про что?
ПЕРЕБОР АННОТАЦИЙ СПРИНГА

Вот то, что мы полдня обсуждаем, это не относится к проблеме ТС-а. У него одна проблема - предшественник до него написал одну лишнюю аннотацию, которая не нужна.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958579
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Увы. Таково течение коллективного разума. Он не всегда обсуждает то что надо автору.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958581
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan,
Да. Конечно.
Мы обсуждаем фразу - название темы.
Буквально.
"Спринг много на себя берет". (с)
авторНаличие возможности, даже такой, лучше, чем ее отсутствие
В архитектуре эта фраза антипаттерн.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958583
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan,
авторВроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит.скажи назначение приватных полей.
Пусть кто хочет лезет, кто хочет не лезет
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958591
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, это очень похоже на антипаттерн. Но тут недавное по-моему asv79 с проблемой бегал. Надо обновить базу, доступа до нее нет, и фиг знает у кого он есть. Есть два пути:
1) Писать каждый раз кучу писем с кучей согласований, чтобы взяли твой скрипт и прогнали фиг знает кто, фиг знает когда и фиг знает какой результат у него будет
2) Встроить это в приложение, которое ты можешь обновлять куда быстрее
Первый способ конечно правильнее, но через какое-то время можно выбрать второй, как путь с меньшим сопротивлением

PetroNotC Sharp
SpringMan,
авторВроде ничего путанного нет. Спринг может лезть в базу, а может и не лезть. Кто хочет, чтобы лез, тот это настроит.
скажи назначение приватных полей.
Пусть кто хочет лезет, кто хочет не лезет
Имхо сравнение не совсем корректно. Спринг/приложение уже знает как попасть в базу. Если оно будет выполнять скрипты никакой дополнительной приватности не нарушается
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958596
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan,
Откуда оно что знает?
У меня в бд имеет доступ jndi или пул.
Но спринг оказывается что то там знает....
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958602
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://www.codeflow.site/ru/article/spring-persistence-jpa-jndi-datasource
Тут вроде спринг никуда не лезет и спокойно уступает место JNDI, JPA, HIBER....
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958605
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

А больше ничего и не надо. Через jndi/pool можно точно также вызвать нужный скрипт, как и в спринговом приложении. И тот же спринг можно так же натравливать на jndi)
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958758
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic
Хех, ну да вариантов много. В общем выложу код, переименую класс, чтоб не палиться :) Задача такая - не давать стартовать сервису, если не доступна БД.
Да, меня именно эта связка аннотаций смутила:
@Bean
@PostConstruct
а инжект Environment'а - фиг с ним :)


Не истины ради, а флейма для.
Проверка, на существование БД.
Если нету БД, то приложение падает.
(Для Spring Boot, на Kotlin)

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
@Configuration
@EnableJpaRepositories
open class Configuration {


    @Bean
    open fun missing(dataSource: DataSource): Boolean =
            ! dataSource.connection.isClosed

}



В принципе в бин можно добавить проверки, даже если есть соединение.
Главное Exception выкинуть.

В данном случае exception кидает "dataSource.connection"
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958785
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а, вы про чистый Спринг. Там не проверял.

Но в Spring Boot 100% если база не доступна, приложение не стартанёт.

А какой у вас юскейс? Зачем хотите чтобы падало если базы нет? База не всегда доступна (если сеть упала или базу перезагрузили).
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959067
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Zzz79,
Чем плохо декларативное программирование?
Тем что ты становишься конфигурастом а не программистом.
Спринг это же клей. Вот ты и клеишь программу.
Поэтому ты не знаешь что такое FK и оператор new object.
Что такое наследование и композиция.
....
Поэтому почему то становится проблемой "огромные куски дубляжа".
Проблема не раскрыта.
Имхо
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959068
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У декларативности есть дефект. Она - ничего нем не говорит о порядке исполнения операций.
Конешно полагаясь на хронологический порядок аннотаций мы можем предполагать что
процессор аннотаций обработает их именно так. Но что делать когда этих процессоров несколько.
Lombok и Spring (примеру) умеют читать свой домен аннотаций. Но если возникает вопрос
"кто первый процессит" - то здесь декларативное программирование даёт сбой.

Оно (декларативное) - не знает кто первый. Нет у него такой опции как ранг аннотаций или ранг процессинга.
Тоже самое про maven. Maven - делкаративен. Но нам чисто по человечески иногда важно чтобы
в фазе билда работал сначала этот плагин а потом этот. Хотя они декларированы как одно-ранговые.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959075
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
чисто по человечески иногда важно чтобы в фазе билда работал сначала этот плагин а потом этот.
но большую часть времени мы просто не хотим страдать херней, которая не является для нас самоцелью. Ни FK, ни оператор new, ни ручное выделение памяти для нас не самоцель. Кто хочет, пусть свою самооценку повышает - херачит тонны говнокода. Типа написал врукопашную глючный тормозной сервлет, во - программист. Засунул его с горем пополам в томкэт - еще и тру-админ. А скомпилировал самозапускающийся boot-jar за 3 секунды - конфигураст
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959076
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton,
Да можно и порядок и приоритет в принципе закодить.
Но препроцессинг ведь.
Заменяем код своими значками
@мойСуперКлючикСтрокаЗначок(....
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959079
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,
Ты тоже прав.
Нужно в меру.
Нужно чтобы спринг знал меру))))
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959081
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... яб сказал что самый первый вопрос которым должны мордовать и мучать бедного джуна
на техническом ревью - это Spring и жизненный цикл бина. Про что это?

Это именно про порядок инициализации заинжекченых полей и пропертей и пост-конструкторов
и прочего декралативного дерьма. Порядок сцуко - важен. На порядке инициализации 80% багов
прилетает. Особенно хреново когда есть race-conditions. И мультипоточка. И какие-то бл%дские
статические поля переменных. Там - вобще конь не валялся. И как всегда на тестах хорошо а в продуктиве
- падает.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959082
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
mayton,
Да можно и порядок и приоритет в принципе закодить.
Но препроцессинг ведь.
Заменяем код своими значками
@мойСуперКлючикСтрокаЗначок(....

Это - еще хуже.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959141
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проблема не в аннотациях, что вы к ним привязались?

Очевидный факт упускаете, что проблема в том что реализация этих аннотаций не видна программисту, т.к. она делается на этапе инициализации контекста и создания проки классов.

Это - основная проблема. Т.к. документация не всегда понятна и полна в Спринге. Да и всегда удобно код почитать.

А тут - не получится.

Вот за это я оч. уважаю AST аннотации\трансформации - т.к. там можно подебажить и посмотреть что конкретно происходит.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959170
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ломбок это пародия на Груви.

А так я привык читать код библиотек которые использую.
Но в случае со Спрингом уже тоже свыкся...

Хотя давно могли также Intellij добавить поддержку просмотра gclib обработчиков аннотаций из кода приложения
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959232
Тут другое интересно. Насколько я помню, при разработке джавы один из лозунгов был что то вроде "как написано, так и работает". Под эту лавочку туда не стали добавлять плюсовые макросы, которые могут превратить код в адок. И даже псевдонимы типов не сделали...
А потом взяли и добавили рефлексию, аннотации, джава-агенты. В итоге получили тот же самый адок, только в профиль, и теперь все соревнуются, кто больше аннотаций изобретет и понавешает.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959235
Но самый перебор, это конечно не аннотации. Самый перебор - это когда поведение зависит от наличия той или иной зависимости без какой либо явной конфигурации. Вот где абсолютное зло.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959251
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ржавый гвоздь
Тут другое интересно. Насколько я помню, при разработке джавы один из лозунгов был что то вроде "как написано, так и работает". Под эту лавочку туда не стали добавлять плюсовые макросы, которые могут превратить код в адок. И даже псевдонимы типов не сделали...
А потом взяли и добавили рефлексию, аннотации, джава-агенты. В итоге получили тот же самый адок, только в профиль, и теперь все соревнуются, кто больше аннотаций изобретет и понавешает.

Типа рефлексия это плохо?:) А как вы без неё сделаете модульное приложение расширяемое?
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39959254
dakeiras

Типа рефлексия это плохо?:) А как вы без неё сделаете модульное приложение расширяемое?

Не всегда и не везде плохо. Но когда ее используют и где надо и где не надо - от нее больше вреда, чем пользы. Засилие аннотаций - типичный вредный пример, а какой нибудь сериализатор - вполне хороший.
...
Рейтинг: 0 / 0
25 сообщений из 131, страница 2 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Аннотации спринга, по-моему перебор, не? :)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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