| 
 | 
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  chpasha А ты не пробовал вникать, когда и почему Not recommended? Пробовал и прекрасно знаю почему ,поэтому и ответил в теме этой no way to unit test without reflection or a Spring container-одна из основных наверно причин,почему @Autowired явлеяется признаком плохого кода ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 16:02 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов asv79 Уточните из какой деревни JetBrains ,которые пишут , что @Autowired  is not recommended. Стас, тебе нужно срочно натравить на код какой-нить SonarQube и начать нести в массы новые знания того, что тамошние имбецилы не рекомендуют. По сонар кубу я ничего не могу сказать ,ибо я с ним не сталкивался ( видимо и слава богу) ,на одном из мест работы я столкнулся с чем то подобным не помню названия PWD или что то рядом- который на подобии сонара чекал код перед сборкой,а сборка в дженкинсе была настроена так ,что если варны идут - то ничего не собирается- там да до каждого пробела и запятой домогались и надо сказать это порядком надоедало ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 16:15 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 прекрасно знаю почему ,поэтому и ответил в теме этой что-то не похоже. у нас здесь field injection? у нас здесь есть что-то, что можно протестировать без spring? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 16:15 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  chpasha asv79 прекрасно знаю почему ,поэтому и ответил в теме этой что-то не похоже. у нас здесь field injection? у нас здесь есть что-то, что можно протестировать без spring? а разве нет? мокни репу и делай что хочешь,зачем тут спринг или ты собрался тестить jdbc драйвер? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 16:27 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 а разве нет? нет - у нас java based spring config здесь и бин, в который при создании нужно заинжектить зависимость из другого конфига ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 16:46 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 no way to unit test without reflection or a Spring container-одна из основных наверно причин,почему @Autowired явлеяется признаком плохого кода у того, кто писал этот бред, определенно существуют трудности с пониманием происходящего в современной разработке: 1. зависимость от spring - это не плохо и не хорошо, это просто зависимость от spring, писать код исходя из того, что он может в какой-то момент переехать на другой DI - откровенно говоря, так себе затея, при этом @Autowired при таком переезде особых трудностей вызывать не будет - в спринге полно более других выкрутасов, которые поддерживаются только спрингом и нигде больше. Поэтому нужно четко осозновать, что если кто-то начинает ссать в уши что у тебя в проекте зависимость от конкретного DI и это плохо, то перед тобой м*удак. 2. Относительно возможности "собрать бин руками" как таковой: чтобы значь начать дискутировать нужно для начала прояснить несколько вещей: - нужно открыть проект, заглянуть в src/test и посчитать сколько раз там такое делается: чет есть ощущение, что руками зависимости никто уже давно не собирает в виду сложности и бесполезности процесса - осознать, что чтобы убедиться в работоспособности спрингового контекста, его так или иначе придется поднять, а зачем тогда собирать зависимости вручную? 3. DI через поля откровенно лучше чем через сеттеры, по двум причинам: - оно по крайней мере делает вид, что бины не мутируют - оно побуждает писать дальнейший код более правильно (инициализация в @PostConstruct или по событию, а не сразу в сеттере или конструкторе) 4. DI через конструкторы (то как рекомендуют упоротые разработчики JetBrains) - это совершенная дичь, а не рекомендация: если проект хоть капельку сложный, то появление в нем циклических зависимостей - это всего лишь вопрос времени, с циклическими зависимостями принято бороться или глобальным рефакторингом или шлепаньем @Lazy, использование @Lazy несет ряд проблем, самая серьезная заключается в том, что зависимости, помеченные @Lazy разрешаются исключительно в рантайме при попытке к ним обратиться, при этом нет никаких гарантий, что если граф зависимостей разрешился-таки на одном окружении, то он разрешится и на другом итого имеем: - на одной чаше весов прямой код и отсутствие пороховой бочки в виде рантайма, который готов в каждую минуту развалиться - на другой чаше весов какие-то заблуждения 15-летней давности со всеми вытекающими ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 16:57 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  chpasha нет - у нас java based spring config здесь и бин, в который при создании нужно заинжектить зависимость из другого конфига ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 17:01 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Тема переезда на другие DI - интересная тема. Мы рассматриваем Dagger, как альтернативу Spring  для легковесных Servel-Less функций для амазончика. Пытались также рассматривать Guice, Quarkus. Quarkus пока не пошел по причине что никто не компетентен. Все пожимают плечами. Guice на рассмотрении. В данном форуме я-бы для начала поднял голосование на тему того, какие именно фичи являются определяющими в данный момент для фреймворка. Если DI - это Пареттовские 80% желаемых фич - тогда Spring ничем особо не примечателен и можно спокойно брать другие инжекторные двигатели и для нового проекта ничего по сути не меняется, но избавляемся от лишних мегабайт зависимостей. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 17:09 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  chpasha asv79 а разве нет? нет - у нас java based spring config здесь и бин, в который при создании нужно заинжектить зависимость из другого конфига все это тут не нужно от слова совсем делается это гораздо проще и удобней через @Service->@RequiredArgsConstructor->pr Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. зачем вот это все в видео конфигов каких и бинов руками созданных? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 17:18 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов - на одной чаше весов прямой код и отсутствие пороховой бочки в виде рантайма, который готов в каждую минуту развалиться - на другой чаше весов какие-то заблуждения 15-летней давности со всеми вытекающими @Autowired не дает возможности сделать это поле имутейбл например а вообще вот тут хорошо написано - почему это плохо Код: 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. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 17:47 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  mayton Тема переезда на другие DI - интересная тема. Мы рассматриваем Dagger, как альтернативу Spring  для легковесных Servel-Less функций для амазончика. Пытались также рассматривать Guice, Quarkus. Quarkus пока не пошел по причине что никто не компетентен. Все пожимают плечами. Guice на рассмотрении. В данном форуме я-бы для начала поднял голосование на тему того, какие именно фичи являются определяющими в данный момент для фреймворка. Если DI - это Пареттовские 80% желаемых фич - тогда Spring ничем особо не примечателен и можно спокойно брать другие инжекторные двигатели и для нового проекта ничего по сути не меняется, но избавляемся от лишних мегабайт зависимостей. тут дело не в переезде а в обчном юнит тестировании This means that if you want to use your class outside the application container, for example for unit testing, you are forced to use a Spring container to instantiate your class as there is no other possible way (but reflection) to set the autowired fields. по поводу @Lazy - у нас достаточно сложный проект ( даже близко не энтерпрайз) и нет ни одного класса с @Autowired ,между тем у нас нет ни каких проблем с цикличностью и инициализацией коллекций . ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 17:55 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 Андрей Панфилов - на одной чаше весов прямой код и отсутствие пороховой бочки в виде рантайма, который готов в каждую минуту развалиться - на другой чаше весов какие-то заблуждения 15-летней давности со всеми вытекающими @Autowired не дает возможности сделать это поле имутейбл например а вообще вот тут хорошо написано - почему это плохо Стас, попробуй своими словами описать, а не приводить цитаты очередного бреда из интернета... там испанский имбецил (чисто к сведению: испанцы еще хуже индусов) пишет примерно следующее: "я когда делаю DI через конструкторы то я начинаю замечать, что код выглядит так себе, потому что у конструкторов много параметров, а при использовании @Autowired я этого не замечаю..." Ну тут ему нужно или посоветовать использовать lombok, чтобы тоже не замечать, или голову-таки включить. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 18:02 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов asv79 пропущено... @Autowired не дает возможности сделать это поле имутейбл например а вообще вот тут хорошо написано - почему это плохо Стас, попробуй своими словами описать, а не приводить цитаты очередного бреда из интернета... там испанский имбецил (чисто к сведению: испанцы еще хуже индусов) пишет примерно следующее: "я когда делаю DI через конструкторы то я начинаю замечать, что код выглядит так себе, потому что у конструкторов много параметров, а при использовании @Autowired я этого не замечаю..." Ну тут ему нужно или посоветовать использовать lombok, чтобы тоже не замечать, или голову-таки включить. ну я с тем что он пишет согласен) кроме того конечно - что с конструктором проще уведеть что ваш класс уже не отвечает SOLID например юнит тестирование- тут сложно поспорить - мы тестируем отдельно взятый класс- зачем мне подымать под это дело спринг? а если этих тестов тысячи?ждать по полгода пока проект соберется в тим сити,который и так тормознутый я лично против @Autowirerd только изза тестирования ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 18:14 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79 @Autowired явлеяется признаком плохого кода asv79 я лично против @Autowirerd только изза тестирования asv79 тим сити,который и так тормознутый Очевидно что ты гонишь. тим сити делает разве что mvn test/verify в зависимости от, у вас тесты просто писать не умеет никто. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 18:51 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов asv79 @Autowired явлеяется признаком плохого кода asv79 я лично против @Autowirerd только изза тестирования asv79 тим сити,который и так тормознутый Очевидно что ты гонишь. тим сити делает разве что mvn test/verify в зависимости от, у вас тесты просто писать не умеет никто. я не гоню) тим сити перед сборкой запускает тесты и если это спринговые тесты( а с автовайред это только они) то это очень долго. Тесты я сам пишу и там нет ничего необычного - разница лишь в контексте ,но спринговые тесты объективно и по понятным причинам гораздо медленней обычного юнит теста что такое обычный юнит тест Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. а со спрингом это выглядит вот так Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. эти два теста тестриуют один и тот же функционал( специально переписал под спринг посмотреть) и спринговый тест медленней в разы( насколько не мерял) но и так понятно ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 19:02 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  asv79, т.е. там по десятку зависимостей везде, а ты при этом тут что-то про SOLID рассказываешь? и да, судя по тому что ты привел, тесты действительно писать не умеете. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 19:26 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов asv79, т.е. там по десятку зависимостей везде, а ты при этом тут что-то про SOLID рассказываешь? и да, судя по тому что ты привел, тесты действительно писать не умеете. десятка там нет,всего 6 ) но да ладно и чем тебе сии тесты не угодили?замечу лишь то,что это две интепритации с конструктор инжектинг,филд инжектов у нас нет и руками писать их лень,поэтому провел сравнительный анализ на том ,что было. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 19:40 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Андрей Панфилов Если обсуждать конкретный код, то там @Autowired не нужен asv79 делается это гораздо проще и удобней  через @Service->@RequiredArgsConstructor->pr Понятное дело проще - дурное дело оно ж не хитрое. Но как же SOLID? Объясни мне, зачем классу, которому для работы нужна некая коллекция строк, впендюривать в зависимости целый dao? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 20:24 | 
  
  
  
   | 
||
| 
 
Как проинициализировать Bean значениями из БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  chpasha Андрей Панфилов Если обсуждать конкретный код, то там @Autowired не нужен asv79 делается это гораздо проще и удобней  через @Service->@RequiredArgsConstructor->pr Понятное дело проще - дурное дело оно ж не хитрое. Но как же SOLID? Объясни мне, зачем классу, которому для работы нужна некая коллекция строк, впендюривать в зависимости целый dao? затем что вы этого хотите?если не устраивает - то это вопрос архитектуры скорей- нужно значит делать какие то слои ,которые работают с дао и выдают вам по требванию нужные коллекции /сингл значения ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 14.03.2021, 21:39 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?fid=59&startmsg=40053311&tid=2120505]:  | 
    0ms | 
get settings:  | 
    10ms | 
get forum list:  | 
    12ms | 
check forum access:  | 
    3ms | 
check topic access:  | 
    3ms | 
track hit:  | 
    60ms | 
get topic data:  | 
    13ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    62ms | 
get tp. blocked users:  | 
    1ms | 
| others: | 230ms | 
| total: | 397ms | 

| 0 / 0 | 

    Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
    
    
    «На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
    
    
    ... ля, ля, ля ...