Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Java Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
 Re: Autowired bean is null  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
SQL2008
Zzz79, спрошу по другому.
Я правильно понимаю, что @Autowired это типа ссылка (+конструктор) на некий общий объект?
Можно-ли использовать его из разных классов?

@Autowried вытаскивает из контекста бин ,который ты создал и кладет его туда куда ты эту анотацию положил- над полем - значит в поле,в контруктор значит в конструктор и тд

в твоем случае у тебя изначально два бина одного класса с разными Id
используется тот ,что ты запихал в хмл
а то что у тебя в коде там прописано спрингу пофиг если не указана анотайшн бейсед конфиг
4 ноя 20, 20:07    [22226406]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4378
Zzz79
в твоем случае у тебя изначально два бина одного класса с разными Id
используется тот ,что ты запихал в хмл
а то что у тебя в коде там прописано спрингу пофиг если не указана анотайшн бейсед конфиг

Это мне нужно осмыслить.
5 ноя 20, 06:39    [22226592]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
SQL2008

В application-context.xml
 <bean id="myAuthenticationSuccessHandler"
          class="bla.bla.bla.SecurityHandler" />


Причем все работает, управление после успешной авторизации получает.
Но внутри не могу связать bean


Ну дык правильно!
Вы его в xml-конфиге не заинжектили!

Надо так:

 <bean id="myAuthenticationSuccessHandler"
          class="bla.bla.bla.SecurityHandler" >
        <property name="testBean" value="testBinRef" />
</bean>


P.S.используйте один стиль описания/создания бинов.
Если используете xml-конфиги, то создавайте бины только там, без аннотаций .
Если используете аннотации, то не создавайте бины в xml-конфиге.
В противном случае будете много времени тратить на танцы с бубном вокруг spring-context'а
5 ноя 20, 06:53    [22226593]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4378
mad_nazgul

Надо так:

 <bean id="myAuthenticationSuccessHandler"
          class="bla.bla.bla.SecurityHandler" >
        <property name="testBean" value="testBinRef" />
</bean>


И обратно не понимаю!
Вот весь мой класс
public class SecurityHandler implements AuthenticationSuccessHandler {

    @Autowired
    ServiceUserDB serviceUserDB;

    public void onAuthenticationSuccess(HttpServletRequest request,   HttpServletResponse response, Authentication authentication) throws IOException  {
        Set<String> roles = AuthorityUtils.authorityListToSet(authentication.getAuthorities());
        String email = ((UserDetails)authentication.getPrincipal()).getUsername();
        Session.userDetail = serviceUserDB.gelUserDetail(email);
        response.sendRedirect("index.html");
    }
}


Какое проперти я должен тут устанавливать, если их нет в принципе?
5 ноя 20, 08:22    [22226615]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
SQL2008

Какое проперти я должен тут устанавливать, если их нет в принципе?


Как нет?!
А

@Autowired
    ServiceUserDB serviceUserDB;


Это что?

Сейчас у вас в приложении вы создали бин, но свойства в него не заинжектили.

Если вы создаёте бин через xml, то нужные проперти вы должны прямо указать, что в них положить.
Если через аннотации, то, да - там магия. Spring сам анйдет и заинжектит что надо.

Поэтому или штаны оденьте, или крестик снимите.

Т.е. создавайте бины или через xml, или через аннотации.

А так (скорее всего) у вас в контексте два бина.
Первый который создался в xml без инициализированного проперти, а второй, который создался через аннотации с инициализированным проперти.

Причем в "form login" вы используете бин который создали в xml.

Так что либо "не думаете" и инициализируете проперти в xml, либо учите жизненный цикл бинов до полного простветления. :-)
5 ноя 20, 08:38    [22226622]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
SQL2008
Member

Откуда: Москва
Сообщений: 4378
mad_nazgul, спасибо за потраченное на меня время!
Если смогу чем-то быть полезен, то с радостью помогу.
Теперь по теме
Перевести все в аннотации не получилось, сделал через XML.

Так что либо "не думаете" и инициализируете проперти в xml, либо учите жизненный цикл бинов до полного просветления. :-)

Пока пошел первым способом, но со вторым мне нужно тоже определяться.
Еще раз спасибо!
5 ноя 20, 13:04    [22226835]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
SQL2008
Zzz79
в твоем случае у тебя изначально два бина одного класса с разными Id
используется тот ,что ты запихал в хмл
а то что у тебя в коде там прописано спрингу пофиг если не указана анотайшн бейсед конфиг

Это мне нужно осмыслить.

ничего сложного
смотри -когда ты пишешь xml спринг его читает и кладет в контекст бин с тем id ,который ты прописал
там же кстати можно заинжектить в этот бин другие бины ,как тебе выше написали
это называется xml based конфигурация

а есть annotation based конфигурация,это когда ты анонтациями указываешь какой бин класть в контекст

сейчас по итогу у тебя в коде кладется бин ,который ты прописал в хмл ,а второй не кладется )

еще раз мой тебе совет - уходи в спринг бут- поверь мне -сейчас джава для джава разработчика жто 1/10 от того что нужно знать
достаточно просто понимаить что под капотом - ты я думаю уже понял- смысла дальше копать нет-двигайся дальше
6 ноя 20, 21:49    [22227794]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
Zzz79,
Сразу на спринг бут нельзя переходить. Это бейсик.
Вы тут с аннотациями сначала закончите.
Чем плохи аннотации?
7 ноя 20, 10:51    [22227903]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
PetroNotC Sharp
Zzz79,
Сразу на спринг бут нельзя переходить. Это бейсик.
Вы тут с аннотациями сначала закончите.
Чем плохи аннотации?


Аннотации это хорошо.
Правда когда сделано так:

@Component
public class foo {

   @Autowired
   private Bar bar;

}


Писать простые unit-тесты становиться затруднительно.
Нужно либо мокать через Mockito, либо поднимать контекст.

Ну как бы не удобно.

Если делать инжекцию, через конструктор, там свои неудобства, зато unit-тесты проще писать.

ИМХО самый "идеологически правильный" это конфигурация через классы.

Можно конфигурацию и классы с бизнес логикой разнести по разным модулям.
С конфигурацией через аннотации мы привязываемся к Spring'у.

А через классы или xml, можно конфигурацию и бизнес-логику разнести.
Но xml это дно. Поэтому конфигурационные классы. :-)
8 ноя 20, 19:12    [22228432]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mad_nazgul,
мое имхо -юнит тесты это юзлесс куета для того чтобы списать время разраба и чтобы бизнес платил больше вот и все
никакой смысловой и иной нагрузки они не несут ибо пишутся по существующему коду, и могут свалиться если кто то где то забыл что то поменять при изменениях в коде,что собственно и так мгновенно обнаружится при тестировании
соотвственно я считаю это бесполезной тратой денег
Ну и собственно люди которые считают деньги обходятся без этого искуственного г0вна,а гос корпорации там и так все понятно)
Я работал с начала карьеры на гос банк и там без юнит теста твой код даже смотреть никто не будет,а сейчас в частной конторе- зашел а папку тест там 0))ибо нах оно надо )
8 ноя 20, 22:05    [22228460]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
PetroNotC Sharp
Zzz79,
Сразу на спринг бут нельзя переходить. Это бейсик.
Вы тут с аннотациями сначала закончите.
Чем плохи аннотации?

перехордить нельзя,согласен- но копаться в проблемах @Primary @Qualifired тоже смысла нет
если он починит свой код - это ему не даст ровно никаки бонусов - а из минусов стопорится на том,что должно пролетать мгновенно
все что надо знать по чистому спрингу - что такое контекст,что такое бин,что такое скоуп бина,жизенный цикл и как это все вызывается
тоесть init(),destroy() ,конечно надо посмотреть как в xml создается бин и как туда инжектиться другой бин ,как это сделать разными путями и на этом надо переходить дальше

а автор застрял на фигне- которая нигде не используется давно,а вот весь тот объем технологий при таком подходе никогда не выучить и соотвественно твоя ценность будет равна 0
8 ноя 20, 22:11    [22228462]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mad_nazgul


Поэтому конфигурационные классы. :-)

для того чтобы определить бины не нужны никакие конфигурационнные классы- это прошлый век)
8 ноя 20, 22:16    [22228463]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
Zzz79
mad_nazgul,
мое имхо -юнит тесты это юзлесс куета для того чтобы списать время разраба и чтобы бизнес платил больше вот и все
никакой смысловой и иной нагрузки они не несут ибо пишутся по существующему коду, и могут свалиться если кто то где то забыл что то поменять при изменениях в коде,что собственно и так мгновенно обнаружится при тестировании
соотвственно я считаю это бесполезной тратой денег
Ну и собственно люди которые считают деньги обходятся без этого искуственного г0вна,а гос корпорации там и так все понятно)
Я работал с начала карьеры на гос банк и там без юнит теста твой код даже смотреть никто не будет,а сейчас в частной конторе- зашел а папку тест там 0))ибо нах оно надо )


"Вы просто не умеете их готовить". ;-)

Вообще приобретать навык написания unit-тестов нужно уже сейчас.
Т.к. с приходом DevOps-практик и прочих аджайлов, всё больше кода будет тестировать приложения.
Т.е. мануального тестирования будет всё меньше и меньше.
И требования к коду будет, чтобы он был тестируемым.

Т.к. любые интеграционные тесты хрупки by default.
То упор таки будет на unit-тесты.
Которые позволяют протестировать хоть что-то, при этом изменения в коде не будут красить все тесты в красное, если не был изменен интерфейс.

И лет через 5-6 код без unit-тестов будет считаться говнокодом.

Так что начать тренироваться надо сейчас.
Чтобы потом на собеседованиях и код-ревью не краснеть.
9 ноя 20, 08:27    [22228539]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
Zzz79
mad_nazgul


Поэтому конфигурационные классы. :-)

для того чтобы определить бины не нужны никакие конфигурационнные классы- это прошлый век)


С точностью до наоборот.

Сейчас "генеральная линия партии" в Spring это конфигурационные файлы.
Аннотации, как и xml оставлены для совместимости.

Сейчас даже контроллеры (@Conroller, @restController) рекомендуют описывать в конфигурационных файлах в виде бина.

На Java это не так сильно акцентрованно. А вот примерах на Kotlin очень даже.

Уже до тестов добрались.
9 ноя 20, 08:31    [22228541]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
mad_nazgul
И лет через 5-6 код без unit-тестов будет считаться говнокодом.
угу. Уже 20 лет тесты не приоритет и ничего.
9 ноя 20, 08:58    [22228547]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
mad_nazgul
@restController) рекомендуют описывать в конфигурационных файлах в виде бина.
пример дайте
9 ноя 20, 08:59    [22228548]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
Zzz79
Member

Откуда:
Сообщений: 1007
mad_nazgul
Zzz79
пропущено...

для того чтобы определить бины не нужны никакие конфигурационнные классы- это прошлый век)


С точностью до наоборот.

Сейчас "генеральная линия партии" в Spring это конфигурационные файлы.
Аннотации, как и xml оставлены для совместимости.

Сейчас даже контроллеры (@Conroller, @restController) рекомендуют описывать в конфигурационных файлах в виде бина.

На Java это не так сильно акцентрованно. А вот примерах на Kotlin очень даже.

Уже до тестов добрались.

не знаю как в котлинах,на джава это анахронизм
тесты это хорошо,когда больше делать нечего- ну чтобы работники не просто так зп получали,другого смысла они не несут от слова вообще.Вот интеграционные худо бедно хоть что то показывают,хотя опять же это все синтетика.
9 ноя 20, 12:02    [22228644]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
PetroNotC Sharp
mad_nazgul
@restController) рекомендуют описывать в конфигурационных файлах в виде бина.
пример дайте


Пример :-)
9 ноя 20, 13:28    [22228717]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
PetroNotC Sharp
mad_nazgul
И лет через 5-6 код без unit-тестов будет считаться говнокодом.
угу. Уже 20 лет тесты не приоритет и ничего.


Ну больше 20 лет микросервисная архитектура была не в приоритете.
Однако сейчас всё немного по другому.

Как бы распространение микросеврисно архитектуры и практик DevOps, приведет к повальному внедрению unit-тестов.
Просто если без них, то "фигак-фигак и в продакшен не получится". :-)
9 ноя 20, 13:31    [22228718]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
Zzz79

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


То же самое можно сказать про любую новую технологию программирования.
Я ещё застал холивары ООП vs ПП.
Как говориться "рыночек порешал".
ООП сейчас везде.

Так же и с unit-тестированием.
Рынок решит.
Что дешевле лежащий прод и/или потеря всех данных.
Или затраченное время программистов на написание unit-тестов.

<:o)
9 ноя 20, 13:39    [22228728]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
mad_nazgul,
Я не просил пример с реактом.
Микросервисы тут делают 1,5 чела. И будут делать столько же.
Все топики проблемные без решения и в конце авторы исчезают)))) LOL
9 ноя 20, 13:42    [22228730]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
PetroNotC Sharp
mad_nazgul,
Я не просил пример с реактом.


Я говорил, про "генеральную линию партии".
А сейчас она как раз направленна на реактивность во все дыры.

Если сейчас почитать документацию Spring, там до сих пор про xml-конфиги пишут.
Это не значит, что xml-конфиги как-то развиваются и продвигаются.
Это легаси, которое поддерживают.

PetroNotC Sharp

Микросервисы тут делают 1,5 чела. И будут делать столько же.
Все топики проблемные без решения и в конце авторы исчезают)))) LOL


Так правильно, сложность микросеврисов она на абстракцию повыше.
Т.е. сложность не написать, а спроектировать доменную модель.
Этим занимаются от уровня сеньер и выше.

А тут вопросы больше "технические".
10 ноя 20, 06:41    [22229284]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
mad_nazgul
А сейчас она как раз направленна на реактивность во все дыры.
бла бла бла. Сетевой маркетинг.
Ты одиночка в микросервисах и в реактивности.
Спрашиваешь про одно а ты впариваешь другое.
10 ноя 20, 09:06    [22229306]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
mad_nazgul
Member

Откуда:
Сообщений: 5596
PetroNotC Sharp
mad_nazgul
А сейчас она как раз направленна на реактивность во все дыры.
бла бла бла. Сетевой маркетинг.
Ты одиночка в микросервисах и в реактивности.
Спрашиваешь про одно а ты впариваешь другое.


Да и что я спрашивал? :-)
10 ноя 20, 12:27    [22229445]     Ответить | Цитировать Сообщить модератору
 Re: Autowired bean is null  [new]
PetroNotC Sharp
Member

Откуда:
Сообщений: 6525
mad_nazgul,
Ты сказал что конфигурирование java лучше БЕССПОРНО конфигурированием аннотациями.
Я сказал докажи.
Не люблю максималистов. Меня аннотации устраивают.
10 ноя 20, 12:37    [22229452]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 [2] 3   вперед  Ctrl      все
Все форумы / Java Ответить