Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4832
dakeiras,
а что такое модули?
В дельфи же тоже есть рефлексия.
Это просто найти название метода и его вызвать в рантайме.
Но модульность (плагинообразность) делают совершенно по другому.
19 май 20, 12:59    [22135710]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
PetroNotC Sharp
dakeiras,
а что такое модули?
В дельфи же тоже есть рефлексия.
Это просто найти название метода и его вызвать в рантайме.
Но модульность (плагинообразность) делают совершенно по другому.


ну так я и спрашиваю, как сделать поддержку сторонних плагинов в приложении на Яве без рефлексии и статического биндинга?

Через jndi разве что? Но это усложняет довольно сильно.
19 май 20, 13:06    [22135719]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
dakeiras
ну так я и спрашиваю, как сделать поддержку сторонних плагинов в приложении на Яве без рефлексии и статического биндинга?
В класспутя добавить или это слишком просто?
19 май 20, 13:19    [22135738]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
Basil A. Sidorov
dakeiras
ну так я и спрашиваю, как сделать поддержку сторонних плагинов в приложении на Яве без рефлексии и статического биндинга?
В класспутя добавить или это слишком просто?

и инстациировать как?
19 май 20, 13:48    [22135773]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4832
dakeiras
ну так я и спрашиваю, как сделать поддержку сторонних плагинов в приложении на Яве без рефлексии и статического биндинга?

Можно целую тему создать. Тысячи решений.
1. Учитывая мейнстрим сейчас модуль приравнивается к сервису.
Заметь, слово микросервис я не люблю.
Поддержку в ИС дополнительно к своим 15-ти сервисам ещё воткнуть сервис по продаже авиабилетов нет проблем?
19 май 20, 13:59    [22135780]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
dakeiras
и инстациировать как?
Ну интерфейс-то вы знаете?
Конкретную реализацию умеет выбирать SPI.
19 май 20, 14:17    [22135799]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
вот. Приходим к @Service и context.getBean("beanName").

Что является альтернативой рефлексии при использовании Спринга.

Хотя я одинаково часто использую и context.getAutowireBeanCapableFactory().autowireBean(myPojo) где myPojo инстанциируется через рефлексию, но имеет @Autowired поля.
19 май 20, 14:23    [22135808]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
PetroNotC Sharp
dakeiras,
а что такое модули?
В дельфи же тоже есть рефлексия.
Это просто найти название метода и его вызвать в рантайме.
Но модульность (плагинообразность) делают совершенно по другому.

Я-бы различал модули maven-based проекта. Они полезны когда например
есть дистрибуция приложения частями. И вы можете поставлять например
изменившиеся DAO которые зависят от изменившися SOAP wsdl протоколов.

Отдельно - стоит различать OSGI bundles. Которые очень любит Deuche Bank.
Да и прочие европейские банки. Любой пустяк в них заворачивают.

И отдельно - модули Java-9. Все таки они - технологически другие.

Тоесть спор о модулях - это сложный спор. И его надо начинать в контексте хотя-бы
общего понимания. Я вот например видел много проектов с модулями maven/gradle
но я не уверен что модули gradle - это тоже самое.

Сообщение было отредактировано: 19 май 20, 14:23
19 май 20, 14:25    [22135809]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
Basil A. Sidorov
dakeiras
и инстациировать как?
Ну интерфейс-то вы знаете?
Конкретную реализацию умеет выбирать SPI.


А когда много реализаций? По имени он же не умеет выбирать, да?

Т.е. когда выбранный плагин задаётся в конфиге, это уже не работает.

Пример: плагин трансформации веб сервиса из REST в SOAP и обратно по URL выбирается.
19 май 20, 14:28    [22135812]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
dakeiras
вот.
Что "вот"?
Есть разные способы получить более-менее произвольную реализацию, доступную в класспути и без всякой рефлексии.
Загрузка-то ленивая. Можно сначала подложить нужный class-файл "из большого списка", а уже потом обратиться к нему. Можно динамически скомпилировать нужную реализацию.
Можно, наверное, и через j.l.invoke работать (Java 7+).
19 май 20, 14:39    [22135822]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
dakeiras
Пример: плагин трансформации веб сервиса из REST в SOAP и обратно по URL выбирается.
Передайте строку в конструктор и возвращайте нужный из набора (приватных) вложенных классов - общий интерфейс и столько реализаций, сколько требуется.
19 май 20, 14:42    [22135826]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
dakeiras
вот. Приходим к @Service и context.getBean("beanName").

Что является альтернативой рефлексии при использовании Спринга.

Кодогенерация.
19 май 20, 14:56    [22135844]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
Basil A. Sidorov
dakeiras
Пример: плагин трансформации веб сервиса из REST в SOAP и обратно по URL выбирается.
Передайте строку в конструктор и возвращайте нужный из набора (приватных) вложенных классов - общий интерфейс и столько реализаций, сколько требуется.


А откуда вы знаете как будет называться произвольная реализация заранее?
19 май 20, 15:07    [22135857]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
dakeiras
А откуда вы знаете как будет называться произвольная реализация заранее?
А зачем вам знать, как называется то, что ещё не существует?
Хотя, кодогенерация и эту проблему позволяет порешать.
19 май 20, 15:08    [22135859]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
Basil A. Sidorov
dakeiras
вот.
Что "вот"?
Есть разные способы получить более-менее произвольную реализацию, доступную в класспути и без всякой рефлексии.
Загрузка-то ленивая. Можно сначала подложить нужный class-файл "из большого списка", а уже потом обратиться к нему. Можно динамически скомпилировать нужную реализацию.
Можно, наверное, и через j.l.invoke работать (Java 7+).

Короче нет альтернатив рефлексии :)
19 май 20, 15:08    [22135860]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
Basil A. Sidorov
dakeiras
А откуда вы знаете как будет называться произвольная реализация заранее?
А зачем вам знать, как называется то, что ещё не существует?
Хотя, кодогенерация и эту проблему позволяет порешать.


В смысле зачем?? У вас есть система плагинов, вы их загружаете по конфигу.

Ни названия плагинов ни конфиг заранее не известны.
19 май 20, 15:09    [22135862]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
dakeiras
Короче нет альтернатив рефлексии :)
Есть. Нет поддержки со стороны средств разработки и сборки.
Ну так это не достоинство рефлексии, а недостаток инструментария.
19 май 20, 15:09    [22135863]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4832
dakeiras,
В плагинах все натыкается на бизнес логику того чего еще не существует.
Ну будет у тебя меню с п.п. Сервисы где 25 пунктов это запуск а ля dll в папке /plugins/
Информационная система все равно Г.
Если это не фотошоп с плагинами.
19 май 20, 15:54    [22135893]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
Сорри но вы просто оправдываете свою предвзятость по отношению к рефлексии, уши этого тянутся с 2005 года когда она тормозила и была плохой практикой, что уже давно не так.
19 май 20, 16:08    [22135901]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
Обычно в инфо-безопасности плагин - это настоящая дыра для проникновения троянов и всего прочего.

Тоесть просто обеспечить вызов плагина это еще пол-дела. А вот проверить что он не содержит угроз.
Как минимум проверить его Digital Signature и сконфигурить окружение Security Manager чтоб плагин
работал в коробочке с минимумом привилегий. Вот это челендж.

А рефлексия - это так. Мелочи.
19 май 20, 16:14    [22135907]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
Basil A. Sidorov
Member

Откуда:
Сообщений: 10171
dakeiras
вы просто оправдываете свою предвзятость по отношению к рефлексии
А вы - своё нежелание даже знать о существовании (условно) новых возможностей.
19 май 20, 16:29    [22135918]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
mayton
Обычно в инфо-безопасности плагин - это настоящая дыра для проникновения троянов и всего прочего.

Тоесть просто обеспечить вызов плагина это еще пол-дела. А вот проверить что он не содержит угроз.
Как минимум проверить его Digital Signature и сконфигурить окружение Security Manager чтоб плагин
работал в коробочке с минимумом привилегий. Вот это челендж.

А рефлексия - это так. Мелочи.

Пример: телеграм чат бот с готовым движком. Вы его добавляете как зависимость (либо скачиваете исполняемый jar), он уже содержит всё необходимое включая Spring Boot и готов к запуску.

Далее добавляете в него команды (типа /mycommand в чате с ботом) в виде классов (либо копируя плагины в ./plugins).

Имя класса=имя команды бота.
Бот заранее не знает какие будут в нём команды.

Плагины разрабатываете Вы сами.
Какая тут дыра в безопасности? Не нужны никакие подписи. Вы же себе доверяете сами, правильно?
19 май 20, 16:54    [22135934]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 4832
dakeiras,
Какие детские примеры с чатами и чатиками.
Давай корпоратив.
Мы же в java.
19 май 20, 17:04    [22135941]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
mayton
Member

Откуда: loopback
Сообщений: 46531
dakeiras, ты вообще мою мысль не понял. Кто сказал что ты сам плагины делаешь?
19 май 20, 17:04    [22135943]     Ответить | Цитировать Сообщить модератору
 Re: Аннотации спринга, по-моему перебор, не? :)  [new]
dakeiras
Member

Откуда:
Сообщений: 444
так а кто сказал что стороние плагины?

Ок, не нравится пример с чат ботом, вот другой пример: ETL. Допустим вы не используете Talend, а у вас какой-то простой свой ETL.
Плагин на вход - плагин на выход.
19 май 20, 17:29    [22135958]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 [4] 5 6   вперед  Ctrl      все
Все форумы / Java Ответить