powered by simpleCommunicator - 2.0.30     © 2024 Programmizd 02
Map
Форумы / Java [игнор отключен] [закрыт для гостей] / Как проинициализировать Bean значениями из БД
44 сообщений из 44, показаны все 2 страниц
Как проинициализировать Bean значениями из БД
    #40052804
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как проинициализировать коллекцию в классе, значениями из БД, на примере на рисунке?


ЗЫ
1) Не нужен ни какой полу-готовый ответ, обязательно оставляйте ссылку на "Java Documentation Oracle Help Center", это не срочно, понадобиться только через 15 лет...
2) Обязательно подчеркните насколько вы гений и насколько автор не специалист, но будьте осторожны, вдруг напишет адекватный и компетентный формумчанин, тогда замаскируйтесь тоже под адекватного... и напишите, что вы это и имели ввиду, просто автор тупой...
3) А как же обучить автора самому искать информацию?, очень просто, закрываете форум и идете открываете свою собственную школу!
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052807
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,

Паттерн ОРМ.
А ЗЫ у тебя зачем? Жизнь потрепала сильно?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052815
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks
ЗЫ

смешно, не хватает пункта
4) если что-то не нравится, вали туда, где нравится ;)
на этом форуме любят поговорить, обсудить интересные проблемы, послать друг-друга в жопу. Давать конкретные ответы на конкретные вопросы скучно. По-этому давай поговорим

В чем конкретно в этой задаче ты видишь проблему или ты не знаешь с чего начать?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052822
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha,
Они не могут понять и принять, что java прогер самый серьёзный чел здесь среди всех веток.
Некогда болтать. Порог вхождения большой и длинный.
))
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052823
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть Конфигурация, которая создает мой Bean ("CheckDt"), при создании спрингом Bean, нужно что бы его поле "checkList" было проинициализировано данными из бд. Есть слой ДАО (СпрингДата), который возвращает мне нужные данные. Но я не знаю как связать эти объекта (рисунок)
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052824
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,
Если мы про ОРМ, то List<String
Не подходит.
Нет айдишника ID значений из БД
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052828
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не совсем про ID,

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

как это сделать по феншуй?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052835
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,
Я же ответил.
По феншуй это использовать паттерны. Например ОРМ.
Если Быстренько сбегать то есть jdbc.
Главное не смешивать.
Этот Бин же не один в поле воин? Который бегает в бд?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052836
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Задумка, как раз в том, что Бин один в поле воин, можно и два воина, но как связать двух воинов на этапе создания?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052837
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052842
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,
Ты везде так?
Говорили выше - как сходить в бд.
Счас ты про - как связать бины..)))))
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052844
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
PetroNotC Sharp,

Так у меня и ник такой, бесполезность-безнадежность ))
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052846
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос звучит так: Проинициализировать Бин, на этапе создания, данными из БД ?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052858
PetroNotC Sharp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks,
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
// простой DS для тестирования (не для реального использования!)
        SimpleDriverDataSource dataSource = new SimpleDriverDataSource();
        dataSource.setDriverClass(org.h2.Driver.class);
        dataSource.setUsername("sa");
        dataSource.setUrl("jdbc:h2:mem");
        dataSource.setPassword("");

        JdbcTemplate jdbcTemplate = new JdbcTemplate(dataSource);

        System.out.println("Creating tables");
        jdbcTemplate.execute("


Без спринг бут, конфигурирование в рукопашную спринга это мучения.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052873
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks
Вопрос звучит так: Проинициализировать Бин, на этапе создания, данными из БД ?
ну как как - проинжектить твой дао в метод создания бина. ты бы это, вместо картинок код в тэг src вставлял, а то все за тебя печатать
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
class MainConfiguration {

    @Bean
    @Autowired
    CheckDt createCheckDt(CheckRepository repo)
    {
        return new CheckDt(repo.findByDocument());
    }

}


вопрос однако в том, откуда берется параметр для findByDocument - я ж так понимаю он всегда разный или для CheckDt один?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052886
Aleks_Aleks
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
chpasha,

Вы мой бог )

Для меня вот это было важно:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
class MainConfiguration {
    @Bean
    @Autowired
    CheckDt createCheckDt(CheckRepository repo)
    {
        return new CheckDt(repo.findByDocument());
    }
}



остальное я сам допилю )

в коде нельзя рисовать стрелочки, люблю рисовать стрелочки на картинке 😉

Спасибо!
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052891
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks
Вы мой бог )

почитай про конфигурацию спринга в яве (в смысле как альтернатива старым xml конфигам) - там кое-что еще есть, этим нужно уметь владеть или по-крайней мере помнить основные возможности без подробностей
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052909
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По идее автору подходит любой tutorial по SpringData.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40052977
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
По идее автору подходит любой tutorial по SpringData.

вопрос вообще про Java-based container configuration в спринге, тут тема БД - несущественная подробность. Просто вопросы правильно формулировать тоже уметь надо
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053011
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Aleks_Aleks
Вопрос звучит так: Проинициализировать Бин, на этапе создания, данными из БД ?

создать репу,репу заинжектить в этот бин,из репы вытащить коллекцию и ею проинициализировать что ты там хочешь

а вообще судя по всему ты запутался - назови конечную цель всего представления и оттуда уже начнем понимать что ты хочешь
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053012
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну и @AutoWired уже моветон давно
учитесь инжектить правильно )
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053126
andreykaT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
ну и @AutoWired уже моветон давно
учитесь инжектить правильно )

почему моветон у кого моветон где моветон? у вас в деревне среди деревенских парней?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053272
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andreykaT
asv79
ну и @AutoWired уже моветон давно
учитесь инжектить правильно )

почему моветон у кого моветон где моветон? у вас в деревне среди деревенских парней?

Уточните из какой деревни JetBrains ,которые пишут , что @Autowired is not recommended.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053293
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А ты не пробовал вникать, когда и почему Not recommended?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053302
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Уточните из какой деревни JetBrains ,которые пишут , что @Autowired is not recommended.


Стас, тебе нужно срочно натравить на код какой-нить SonarQube и начать нести в массы новые знания того, что тамошние имбецилы не рекомендуют.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053311
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
А ты не пробовал вникать, когда и почему Not recommended?

Пробовал и прекрасно знаю почему ,поэтому и ответил в теме этой

no way to unit test without reflection or a Spring container-одна из основных наверно причин,почему @Autowired явлеяется признаком плохого кода
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053314
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79
Уточните из какой деревни JetBrains ,которые пишут , что @Autowired is not recommended.


Стас, тебе нужно срочно натравить на код какой-нить SonarQube и начать нести в массы новые знания того, что тамошние имбецилы не рекомендуют.

По сонар кубу я ничего не могу сказать ,ибо я с ним не сталкивался ( видимо и слава богу) ,на одном из мест работы я столкнулся с чем то подобным не помню названия PWD или что то рядом- который на подобии сонара чекал код перед сборкой,а сборка в дженкинсе была настроена так ,что если варны идут - то ничего не собирается- там да до каждого пробела и запятой домогались и надо сказать это порядком надоедало
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053315
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
прекрасно знаю почему ,поэтому и ответил в теме этой

что-то не похоже. у нас здесь field injection? у нас здесь есть что-то, что можно протестировать без spring?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053318
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
asv79
прекрасно знаю почему ,поэтому и ответил в теме этой

что-то не похоже. у нас здесь field injection? у нас здесь есть что-то, что можно протестировать без spring?

а разве нет? мокни репу и делай что хочешь,зачем тут спринг или ты собрался тестить jdbc драйвер?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053325
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
а разве нет?

нет - у нас java based spring config здесь и бин, в который при создании нужно заинжектить зависимость из другого конфига
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053327
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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-летней давности со всеми вытекающими
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053329
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha

нет - у нас java based spring config здесь и бин, в который при создании нужно заинжектить зависимость из другого конфига
Если обсуждать конкретный код, то там @Autowired не нужен
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053331
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тема переезда на другие DI - интересная тема. Мы рассматриваем Dagger, как альтернативу Spring
для легковесных Servel-Less функций для амазончика. Пытались также рассматривать Guice, Quarkus.
Quarkus пока не пошел по причине что никто не компетентен. Все пожимают плечами. Guice на рассмотрении.

В данном форуме я-бы для начала поднял голосование на тему того, какие именно фичи являются определяющими в данный
момент для фреймворка. Если DI - это Пареттовские 80% желаемых фич - тогда Spring ничем особо не примечателен
и можно спокойно брать другие инжекторные двигатели и для нового проекта ничего по сути не меняется,
но избавляемся от лишних мегабайт зависимостей.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053332
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
asv79
а разве нет?

нет - у нас java based spring config здесь и бин, в который при создании нужно заинжектить зависимость из другого конфига

все это тут не нужно от слова совсем

делается это гораздо проще и удобней
через @Service->@RequiredArgsConstructor->pr
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
@Reposotory
public interface SomeRepo{}

@RequiredArgsConstructor
public class CheckDt{

private final SomeRepo repo;

private List<SomeData> someDataList;

public List<SomeData> getSomeDataList(){
return repo.findAll();



зачем вот это все в видео конфигов каких и бинов руками созданных?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053340
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов

- на одной чаше весов прямой код и отсутствие пороховой бочки в виде рантайма, который готов в каждую минуту развалиться
- на другой чаше весов какие-то заблуждения 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.
Field-based dependency injection drawbacks
Disallows immutable field declaration
Field-based dependency injection won’t work on fields that are declared final/immutable as this fields must be instantiated at class instantiation. The only way to declare immutable dependencies is by using constructor-based dependency injection.

Eases single responsibility principle violation
As you know, in object-oriented computer programming, the SOLID acronym defines five design principles that will make your code understandable, flexible and maintainable.

The S in SOLID stands for single responsibility principle, meaning that a class should only be responsible for a single part of the functionality of the software application and all its services should be aligned narrowly with that responsibility.

With field-based dependency injection, it’s really easy to have lots of dependencies in your class and everything will look just fine. If constructor-based dependency injection is used instead, as more dependencies are added to your class, the constructor grows bigger and bigger and code starts to smell, sending clear signals that something is wrong.

Having a constructor with more than ten arguments is a clear sign that the class has too many collaborators and that maybe is a good time to start splitting the class into smaller and more maintainable pieces.

So although field-injection is not directly responsible for breaking the single responsibility principle it surely enough helps by hiding signals that otherwise would be really clear.

Tightly coupled with dependency injection container
The main reason to use field-based injection is to avoid the boilerplate code for getters and setters or creating constructors for your class. In the end, this means that the only way these fields can be set are by Spring container instantiating the class and injecting them using reflection, otherwise the fields will remain null and your class will be broken/useless.

The dependency injection design pattern separates the creation of class dependencies from the class itself transferring this responsibility to a class injector allowing the program design to be loosely coupled and to follow the Single responsibility and Dependency inversion principles (again SOLID). So in the end the decoupling achieved for the class by autowiring its fields is lost by getting coupled again with the class injector (in this case Spring) making the class useless outside of a Spring container.

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.

Hidden dependencies
When using a dependency injection pattern, affected classes should clearly expose these dependencies using a public interface either by exposing the the required dependencies in the constructor or the optional ones using methods (setters). When using field-based dependency injection, the class is inherently hiding these dependencies to the outside world.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053341
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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 ,между тем у нас нет ни каких проблем с цикличностью и инициализацией коллекций .
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053342
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
Андрей Панфилов

- на одной чаше весов прямой код и отсутствие пороховой бочки в виде рантайма, который готов в каждую минуту развалиться
- на другой чаше весов какие-то заблуждения 15-летней давности со всеми вытекающими

@Autowired не дает возможности сделать это поле имутейбл например
а вообще вот тут хорошо написано - почему это плохо


Стас, попробуй своими словами описать, а не приводить цитаты очередного бреда из интернета... там испанский имбецил (чисто к сведению: испанцы еще хуже индусов) пишет примерно следующее: "я когда делаю DI через конструкторы то я начинаю замечать, что код выглядит так себе, потому что у конструкторов много параметров, а при использовании @Autowired я этого не замечаю..."

Ну тут ему нужно или посоветовать использовать lombok, чтобы тоже не замечать, или голову-таки включить.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053346
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79
пропущено...

@Autowired не дает возможности сделать это поле имутейбл например
а вообще вот тут хорошо написано - почему это плохо


Стас, попробуй своими словами описать, а не приводить цитаты очередного бреда из интернета... там испанский имбецил (чисто к сведению: испанцы еще хуже индусов) пишет примерно следующее: "я когда делаю DI через конструкторы то я начинаю замечать, что код выглядит так себе, потому что у конструкторов много параметров, а при использовании @Autowired я этого не замечаю..."

Ну тут ему нужно или посоветовать использовать lombok, чтобы тоже не замечать, или голову-таки включить.

ну я с тем что он пишет согласен) кроме того конечно - что с конструктором проще уведеть что ваш класс уже не отвечает SOLID
например юнит тестирование- тут сложно поспорить - мы тестируем отдельно взятый класс- зачем мне подымать под это дело спринг? а если этих тестов тысячи?ждать по полгода пока проект соберется в тим сити,который и так тормознутый

я лично против @Autowirerd только изза тестирования
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053353
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79
@Autowired явлеяется признаком плохого кода

asv79
я лично против @Autowirerd только изза тестирования

asv79
тим сити,который и так тормознутый


Очевидно что ты гонишь. тим сити делает разве что mvn test/verify в зависимости от, у вас тесты просто писать не умеет никто.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053354
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
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.
class FuckingMapperTest {

  @Mock
  private FukinRepo faukinRepository;
  @Mock
  private FukinRepo faukinRepository;
  @Mock
  private FukinRepo faukinRepository;
  @Mock
  private FukinRepo faukinRepository;
  @Mock
  private FukinRepo faukinRepository;
  @Mock
  private FukinRepo faukinRepository;

  @InjectMocks
  private FuckingMapper fuckingMapper;

  @BeforeEach
  void setUp() {
    MockitoAnnotations.openMocks(this);




а со спрингом это выглядит вот так
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
@ContextConfiguration(classes = {FuckingMapper.class})
@ExtendWith(SpringExtension.class)
class FuckingMapperTest {

  @MockBean
  private FukinRepo faukinRepository;
  @MockBean
  private FukinRepo faukinRepository;
  @MockBean
  private FukinRepo faukinRepository;
  @MockBean
  private FukinRepo faukinRepository;
  @MockBean
  private FukinRepo faukinRepository;
  @MockBean
  private FukinRepo faukinRepository;

  @Autowired
  private FuckingMapper fuckingMapper;


эти два теста тестриуют один и тот же функционал( специально переписал под спринг посмотреть)
и спринговый тест медленней в разы( насколько не мерял) но и так понятно
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053359
Андрей Панфилов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
asv79,

т.е. там по десятку зависимостей везде, а ты при этом тут что-то про SOLID рассказываешь?
и да, судя по тому что ты привел, тесты действительно писать не умеете.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053365
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
asv79,

т.е. там по десятку зависимостей везде, а ты при этом тут что-то про SOLID рассказываешь?
и да, судя по тому что ты привел, тесты действительно писать не умеете.

десятка там нет,всего 6 ) но да ладно
и чем тебе сии тесты не угодили?замечу лишь то,что это две интепритации с конструктор инжектинг,филд инжектов у нас нет и руками писать их лень,поэтому провел сравнительный анализ на том ,что было.
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053374
chpasha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей Панфилов
Если обсуждать конкретный код, то там @Autowired не нужен
да кто ж упомнит все эти тонкости. Он и на конструкторах уже не нужен.

asv79
делается это гораздо проще и удобней
через @Service->@RequiredArgsConstructor->pr

Понятное дело проще - дурное дело оно ж не хитрое. Но как же SOLID? Объясни мне, зачем классу, которому для работы нужна некая коллекция строк, впендюривать в зависимости целый dao?
...
Рейтинг: 0 / 0
Как проинициализировать Bean значениями из БД
    #40053385
Фотография asv79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
chpasha
Андрей Панфилов
Если обсуждать конкретный код, то там @Autowired не нужен
да кто ж упомнит все эти тонкости. Он и на конструкторах уже не нужен.

asv79
делается это гораздо проще и удобней
через @Service->@RequiredArgsConstructor->pr

Понятное дело проще - дурное дело оно ж не хитрое. Но как же SOLID? Объясни мне, зачем классу, которому для работы нужна некая коллекция строк, впендюривать в зависимости целый dao?

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


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