powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Аннотации спринга, по-моему перебор, не? :)
25 сообщений из 131, страница 1 из 6
Аннотации спринга, по-моему перебор, не? :)
    #39957177
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я тут код смотрю чужой и вижу такое, а так как всё еще не прочитал книгу или много доков по спрингу не особо уверен, что такое кол-во аннотаций есть гуд:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@Configuration
public class ...

@Autowired
    private ...

 @Bean
    public ...

 @Bean
 @PostConstruct
    public ...



Особенно смущает последняя комбинация :)
Имеет право на жизнь такой код или аннотации перекрывают друг друга?
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39957208
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic
Я тут код смотрю чужой и вижу такое, а так как всё еще не прочитал книгу или много доков по спрингу не особо уверен, что такое кол-во аннотаций есть гуд:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@Configuration
public class ...

@Autowired
    private ...

 @Bean
    public ...

 @Bean
 @PostConstruct
    public ...



Особенно смущает последняя комбинация :)
Имеет право на жизнь такой код или аннотации перекрывают друг друга?


Ну "@Configuration" это грязный класс.
Надо стараться чтобы в нем сосредотачивалась всякая дичь.

Как минимум это лучше, чем писать портянки xml, для настройки Spring-контекста. :-)
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39957640
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да тут вопрос больше наверное про сочетание:
Код: java
1.
2.
 @Bean
 @PostConstruct 


выглядит реально как дичь

Это тоже странновато:
Код: java
1.
2.
@Autowired
    private


В реальности наверное лучше просто в метод передать этот бин как параметр, а не инжектить во всю конфигурацию.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39957810
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
Да тут вопрос больше наверное про сочетание:
Код: java
1.
2.
 @Bean
 @PostConstruct 


выглядит реально как дичь


Согласен с вами. Это странное аннотирование

SpringMan

Это тоже странновато:
Код: java
1.
2.
@Autowired
    private


В реальности наверное лучше просто в метод передать этот бин как параметр, а не инжектить во всю конфигурацию.


Ну возможно, нужны бины в методе "@PostConstruct"
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39957814
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic
Я тут код смотрю чужой и вижу такое
Код: java
1.
2.
3.
4.
public class ...
метод1... 

метод2... 



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

SomeConfig.java
Код: 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.
@Configuration
@EnableTransactionManagement
@EnableCaching
public class SomeConfig {

    private static final Logger LOGGER = LoggerFactory.getLogger(SomeConfig.class);

    @Autowired
    private Environment env;

    @Bean
    @PostConstruct
    public void checkConnection() {
        try {
            HikariConfig config = new HikariConfig();
            config.setMaximumPoolSize(Integer.parseInt(env.getProperty("spring.datasource.hikari.maximum-pool-size")));
            config.setDriverClassName("org.postgresql.Driver");
            config.setJdbcUrl(env.getProperty("spring.datasource.url"));
            config.setUsername(env.getProperty("spring.datasource.username"));
            config.setPassword(env.getProperty("spring.datasource.password"));
            HikariDataSource hikariDataSource = new HikariDataSource(config);
            hikariDataSource.getConnection().getCatalog();
        } catch (Exception ex) {
            LOGGER.error("Не удалось подключиться к БД при старте");
            System.exit(1);
        }
    }
}

...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958304
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вообще думаю, что для решения задачи достаточно было в пропертях добавить
spring.datasource.continue-on-error=false
Что и было зделано дополнительно к этому коду.
Но чувак не мог отловить эту ошибку и записать её в лог, чтобы девопсы видели, что пошло не так.
Но вот эта связка... очень смущает.
Наверное есть лучше способ?
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958477
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для такого решения достаточно только @PostConstruct. По поводу spring.datasource.continue-on-error=false тут есть. Этот параметр значит: падать, если скрипт инициализации базы успешно не запустился - т.е. придется подложить какой-нить скрипт - тоже не самое красивое, что есть)
Вообще как я понял, у разработчиков этого добра философия такая, что приложение не должно падать, а должно пытаться подключаться до победного

Nixic
Но чувак не мог отловить эту ошибку и записать её в лог, чтобы девопсы видели, что пошло не так.

Вообще звучит как неправда
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958507
Nixic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan

Вообще как я понял, у разработчиков этого добра философия такая, что приложение не должно падать, а должно пытаться подключаться до победного

Да не, там же System.exit(1);
Приложение вообще без подключения к БД не долго стартовать, на счет того, что оно в рантайме потеряет БД тут оно хоть упадет, хоть нет - не важно, главное, что если упадет, то не принудительно.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958513
dakeiras
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
Для такого решения достаточно только @PostConstruct. По поводу spring.datasource.continue-on-error=false тут есть. Этот параметр значит: падать, если скрипт инициализации базы успешно не запустился - т.е. придется подложить какой-нить скрипт - тоже не самое красивое, что есть)
Вообще как я понял, у разработчиков этого добра философия такая, что приложение не должно падать, а должно пытаться подключаться до победного

Nixic
Но чувак не мог отловить эту ошибку и записать её в лог, чтобы девопсы видели, что пошло не так.

Вообще звучит как неправда

Вы про подключение к базе? Не, такое не поддерживается в Спринге сейчас.

Вот ссылка на обсуждение и на мой коммент (ник apriamostanov): https://github.com/spring-projects/spring-boot/issues/4779#issuecomment-501242970

Он не просто не стартует если базы нет, но и падает если например базу перезагрузили.

Идея в том чтобы отлавливать восстановимые ошибки при коннекте к базе и ждать их восстановления.

Сейчас это не поддерживается в Спринге
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958527
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я фигею.
Спринг уже аннотациями базу захватил?
Тут есть хоть один у кого рабочий проект с этим делом?
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958529
Потому что спринг пора закопать. Иначе рискуете, что ваш проект начнет жить своей жизнью, независимо от вас, и ничего хорошего из этого разумеется не выйдет. Думать надо, и архитектуру разрабатывать головой, а не спрингом.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958532
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Nixic
SpringMan

Вообще как я понял, у разработчиков этого добра философия такая, что приложение не должно падать, а должно пытаться подключаться до победного

Да не, там же System.exit(1);
Приложение вообще без подключения к БД не долго стартовать, на счет того, что оно в рантайме потеряет БД тут оно хоть упадет, хоть нет - не важно, главное, что если упадет, то не принудительно.

Не так выразился. Философия у сприговцев, не у создателя приложения

dakeiras

Он не просто не стартует если базы нет, но и падает если например базу перезагрузили.

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

Ну там возможность только запустить sql скрипт при старте приложения или flayway/liquidbase скрипты - магии особой нет
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958536
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan
PetroNotC Sharp
Я фигею.
Спринг уже аннотациями базу захватил?
Тут есть хоть один у кого рабочий проект с этим делом?

Ну там возможность только запустить sql скрипт при старте приложения или flayway/liquidbase скрипты - магии особой нет

Не понял архитектуру и замысел.
Если так как ты написал, тогда это походит на выполнение скрипта из html.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958537
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>или flayway/liquidbase скрипты
= спринг знает про эти либы? Есть include какие то что ли о данных форматах?
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958538
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PetroNotC Sharp
>или flayway/liquidbase скрипты
= спринг знает про эти либы? Есть include какие то что ли о данных форматах?

Ужос....
Почитал. Спринг и туда добрался.
Круто))
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958539
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По сабжу - аннотации спринга = перебор.
Прогеру трудно выбирать, где они нужны и где не нужны.
Так как аннотирование превратилось в программирование.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958540
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp

Не понял архитектуру и замысел.
Если так как ты написал, тогда это походит на выполнение скрипта из html.

По сути да. Такой же подход (создание базы из приложения) есть в hibernate, groovy on grails, ruby on rails и т.п. Это всего лишь возможность для особых случаев, никто не обязует так делать всегда
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958541
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan,
Ну, могу сказать про хибер. Эта фича у него естественна.
Вот и получается что спринг нагло влез на территорию хибера.
Ну а Ruby вроде к java не имеет отношения.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958547
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Тут имхо не важно хибер/руби или что там еще. Главное выбрать подход: создавать базу во время старта приложения или накатывать скрипты отдельно. Лично мне вообще не спокойно, если хиберу давать делать какие-то ddl операции. Кто знает, что он там начнет делать в случае обновления версий и т.п. - sql скрипты прозрачнее
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958550
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan,
ЗАДАЧА: Создать БД (тестовая?) во время старта ВЕБ ПРИЛОЖЕНИЯ (сервиса?)
......
Тут столько вопросов сразу возникает по уточнению ТЗ.
Что невольно спрашиваешь, нахрена тут спринг лезет вообще со своей аннотацией?
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958557
SpringMan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Для создания базы при старте приложения вообще не надо никаких аннотаций, это решается на уровне конфигураций. Создание базы и аннотации ТС-а это не связанные проблемы (ТС захотел просто использовать spring.datasource.continue-on-error = false, а это не совсем о его проблеме)
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958564
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nixic

Особенно смущает последняя комбинация :)
Имеет право на жизнь такой код или аннотации перекрывают друг друга?

Поскольку декларативная наука "программирование на аннотациях" еще не сформировалась,
как отдельная отрасль - нам придется решать вопросы приоритета процессинга аннотаций
особенно если процессоров более чем один. Я думаю что это выльеться как минимум еще
в один язык программирования или мета-язык. И где-то на последних этапах переосмысления
мы придем вопросу принципиальной невозможности решать эти проблемы на мета-языке
и нам потребуется не мета-язык а ПОЛНОЦЕННЫЙ язык пре-процессинга наподобие языка
разработки. Или создадим язык-в-языке.
...
Рейтинг: 0 / 0
Аннотации спринга, по-моему перебор, не? :)
    #39958572
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SpringMan,
Аннотация это конфигурирование на сегодняшний день.
Или декларативное программирование.
Поэтому фраза: "не надо аннотаций но надо конфигурации"
вообще запутывает честного программиста.
А я говорил еще шире - какого рожна спринг лезет в базу. Хоть и скриптами?
...
Рейтинг: 0 / 0
25 сообщений из 131, страница 1 из 6
Форумы / Java [игнор отключен] [закрыт для гостей] / Аннотации спринга, по-моему перебор, не? :)
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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