|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Всем привет! Почему объект testBean равен null в методе ExecutorListener.contextInitialized()? Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
автор08-Sep-2020 10:05:31.829 SEVERE [http-nio-8080-exec-6] org.apache.catalina.core.StandardContext.listenerStart Exception sending context initialized event to listener instance of class [com.example.beantester.ExecutorListener] java.lang.NullPointerException at com.example.beantester.ExecutorListener.contextInitialized(ExecutorListener.java:24) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 10:15 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Molasar, Потому что autowired не сделался. По моему TestBean можно засунуть агрументом в метод и сделать его @AutoWired, но это - не точно. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 10:51 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Чтобы сработал @Autowired, нужно сделать вот так: Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9.
... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 11:17 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Molasar, Потому что JavaEE/JakartaEE можно засунуть в Spring, а наоборот нужно извратиться. :-) Сделайте свой бин TestBin бином JavaEE/JakartaEE. Аннотации @Statefull, @Stateless, @Singlton. Обращаться через @Inject ( а не @Autowired) Ну или используйте только Spring :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2020, 12:37 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Похожая ситуация Это работает Код: java 1. 2. 3. 4. 5.
А это нет, объект NULL Код: java 1. 2. 3. 4. 5.
Все дело в наследовании или в @Controller и @Component? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 10:08 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
SQL2008 Похожая ситуация ... Все дело в наследовании или в @Controller и @Component? А если попробовать не через аннотацию @Controller, а через класс @Сonfig и @Bean ? И инжекцию сделать через конструктор, а не через поле. Хотя вообще-то странно. По идее @Component должен при загрузку приложения падать (ну или в логах ругнуться). С ошибкой создания бина. ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 12:16 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul А если попробовать не через аннотацию @Controller, а через класс @Сonfig и @Bean ? И инжекцию сделать через конструктор, а не через поле. Хочется чтобы все было в едином стиле. И чисто академически интересует этот вопрос - почему в одном месте работает, а в другом нет? Чего я не понимаю? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 19:20 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
SQL2008, А каким образом securityHandler создаётся? ... |
|||
:
Нравится:
Не нравится:
|
|||
03.11.2020, 22:16 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
SQL2008 mad_nazgul А если попробовать не через аннотацию @Controller, а через класс @Сonfig и @Bean ? И инжекцию сделать через конструктор, а не через поле. Хочется чтобы все было в едином стиле. И чисто академически интересует этот вопрос - почему в одном месте работает, а в другом нет? Чего я не понимаю? Чтобы понять, нужно глубоко разбираться в жизненном цикле бинов. И там есть куча неоднозначного поведения, в зависимости от того как создаются бины. Т.к. по двум классам нельзя понять как поднимается Spring-context, то сказать почему - не возможно. Пока посмотрите как создается бин SecurityHandler и где он используется. А так рекомендую мигрировать с аннотаций, на @Config клаассы и инжекцию через конструктор. 1) Легче будет писать Unit-тесты, без поднятия всего контекста 2) Вся "грязь" будет в специально отведенном загончике 3) Можно будет отлаживать поднятие контекста ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 06:50 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul есть куча неоднозначного поведения, в зависимости от того как создаются бины. Свои плюсыминусы ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 09:18 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Lelouch SQL2008, А каким образом securityHandler создаётся? В application-context.xml Код: java 1. 2.
А потом прописывается в security-config.xml Код: java 1. 2. 3. 4. 5.
Причем все работает, управление после успешной авторизации получает. Но внутри не могу связать bean ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 18:04 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79 а зачем ты ставишь компонент над классом который ты уже записал в бины ,причем с другим названием в контекст Удаление @Component никак не повлияло, также не работает! ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 18:59 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79, не биндится объект, остается NULL Код: java 1. 2.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 19:07 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Взял пример отсюда ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 19:10 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79 а вот убери ты из контекста его и там сразу заработает) Ещё раз для тех кто с бронепоезда - что нужно сделать? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 19:42 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79, почему в другом классе работает? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 19:52 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79, спрошу по другому. Я правильно понимаю, что @Autowired это типа ссылка (+конструктор) на некий общий объект? Можно-ли использовать его из разных классов? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.11.2020, 20:03 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79 в твоем случае у тебя изначально два бина одного класса с разными Id используется тот ,что ты запихал в хмл а то что у тебя в коде там прописано спрингу пофиг если не указана анотайшн бейсед конфиг Это мне нужно осмыслить. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 06:39 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
SQL2008 В application-context.xml Код: java 1. 2.
Причем все работает, управление после успешной авторизации получает. Но внутри не могу связать bean Ну дык правильно! Вы его в xml-конфиге не заинжектили! Надо так: Код: java 1. 2. 3. 4.
P.S.используйте один стиль описания/создания бинов. Если используете xml-конфиги, то создавайте бины только там, без аннотаций . Если используете аннотации, то не создавайте бины в xml-конфиге. В противном случае будете много времени тратить на танцы с бубном вокруг spring-context'а ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 06:53 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul Надо так: Код: java 1. 2. 3. 4.
И обратно не понимаю! Вот весь мой класс Код: java 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
Какое проперти я должен тут устанавливать, если их нет в принципе? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 08:22 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
SQL2008 Какое проперти я должен тут устанавливать, если их нет в принципе? Как нет?! А Код: java 1. 2.
Это что? Сейчас у вас в приложении вы создали бин, но свойства в него не заинжектили. Если вы создаёте бин через xml, то нужные проперти вы должны прямо указать, что в них положить. Если через аннотации, то, да - там магия. Spring сам анйдет и заинжектит что надо. Поэтому или штаны оденьте, или крестик снимите. Т.е. создавайте бины или через xml, или через аннотации. А так (скорее всего) у вас в контексте два бина. Первый который создался в xml без инициализированного проперти, а второй, который создался через аннотации с инициализированным проперти. Причем в "form login" вы используете бин который создали в xml. Так что либо "не думаете" и инициализируете проперти в xml, либо учите жизненный цикл бинов до полного простветления. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 08:38 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul, спасибо за потраченное на меня время! Если смогу чем-то быть полезен, то с радостью помогу. Теперь по теме Перевести все в аннотации не получилось, сделал через XML. Так что либо "не думаете" и инициализируете проперти в xml, либо учите жизненный цикл бинов до полного просветления. :-) Пока пошел первым способом, но со вторым мне нужно тоже определяться. Еще раз спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.11.2020, 13:04 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79, Сразу на спринг бут нельзя переходить. Это бейсик. Вы тут с аннотациями сначала закончите. Чем плохи аннотации? ... |
|||
:
Нравится:
Не нравится:
|
|||
07.11.2020, 10:51 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
PetroNotC Sharp Zzz79, Сразу на спринг бут нельзя переходить. Это бейсик. Вы тут с аннотациями сначала закончите. Чем плохи аннотации? Аннотации это хорошо. Правда когда сделано так: Код: java 1. 2. 3. 4. 5. 6. 7.
Писать простые unit-тесты становиться затруднительно. Нужно либо мокать через Mockito, либо поднимать контекст. Ну как бы не удобно. Если делать инжекцию, через конструктор, там свои неудобства, зато unit-тесты проще писать. ИМХО самый "идеологически правильный" это конфигурация через классы. Можно конфигурацию и классы с бизнес логикой разнести по разным модулям. С конфигурацией через аннотации мы привязываемся к Spring'у. А через классы или xml, можно конфигурацию и бизнес-логику разнести. Но xml это дно. Поэтому конфигурационные классы. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.11.2020, 19:12 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79 mad_nazgul, мое имхо -юнит тесты это юзлесс куета для того чтобы списать время разраба и чтобы бизнес платил больше вот и все никакой смысловой и иной нагрузки они не несут ибо пишутся по существующему коду, и могут свалиться если кто то где то забыл что то поменять при изменениях в коде,что собственно и так мгновенно обнаружится при тестировании соотвственно я считаю это бесполезной тратой денег Ну и собственно люди которые считают деньги обходятся без этого искуственного г0вна,а гос корпорации там и так все понятно) Я работал с начала карьеры на гос банк и там без юнит теста твой код даже смотреть никто не будет,а сейчас в частной конторе- зашел а папку тест там 0))ибо нах оно надо ) "Вы просто не умеете их готовить". ;-) Вообще приобретать навык написания unit-тестов нужно уже сейчас. Т.к. с приходом DevOps-практик и прочих аджайлов, всё больше кода будет тестировать приложения. Т.е. мануального тестирования будет всё меньше и меньше. И требования к коду будет, чтобы он был тестируемым. Т.к. любые интеграционные тесты хрупки by default. То упор таки будет на unit-тесты. Которые позволяют протестировать хоть что-то, при этом изменения в коде не будут красить все тесты в красное, если не был изменен интерфейс. И лет через 5-6 код без unit-тестов будет считаться говнокодом. Так что начать тренироваться надо сейчас. Чтобы потом на собеседованиях и код-ревью не краснеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 08:27 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79 mad_nazgul Поэтому конфигурационные классы. :-) для того чтобы определить бины не нужны никакие конфигурационнные классы- это прошлый век) С точностью до наоборот. Сейчас "генеральная линия партии" в Spring это конфигурационные файлы. Аннотации, как и xml оставлены для совместимости. Сейчас даже контроллеры (@Conroller, @restController) рекомендуют описывать в конфигурационных файлах в виде бина. На Java это не так сильно акцентрованно. А вот примерах на Kotlin очень даже. Уже до тестов добрались. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 08:31 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul И лет через 5-6 код без unit-тестов будет считаться говнокодом. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 08:58 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul @restController) рекомендуют описывать в конфигурационных файлах в виде бина. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 08:59 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul @restController) рекомендуют описывать в конфигурационных файлах в виде бина. Пример :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 13:28 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul И лет через 5-6 код без unit-тестов будет считаться говнокодом. Ну больше 20 лет микросервисная архитектура была не в приоритете. Однако сейчас всё немного по другому. Как бы распространение микросеврисно архитектуры и практик DevOps, приведет к повальному внедрению unit-тестов. Просто если без них, то "фигак-фигак и в продакшен не получится". :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 13:31 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Zzz79 не знаю как в котлинах,на джава это анахронизм тесты это хорошо,когда больше делать нечего- ну чтобы работники не просто так зп получали,другого смысла они не несут от слова вообще.Вот интеграционные худо бедно хоть что то показывают,хотя опять же это все синтетика. То же самое можно сказать про любую новую технологию программирования. Я ещё застал холивары ООП vs ПП. Как говориться "рыночек порешал". ООП сейчас везде. Так же и с unit-тестированием. Рынок решит. Что дешевле лежащий прод и/или потеря всех данных. Или затраченное время программистов на написание unit-тестов. <:o) ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 13:39 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul, Я не просил пример с реактом. Микросервисы тут делают 1,5 чела. И будут делать столько же. Все топики проблемные без решения и в конце авторы исчезают)))) LOL ... |
|||
:
Нравится:
Не нравится:
|
|||
09.11.2020, 13:42 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul, Я не просил пример с реактом. Я говорил, про "генеральную линию партии". А сейчас она как раз направленна на реактивность во все дыры. Если сейчас почитать документацию Spring, там до сих пор про xml-конфиги пишут. Это не значит, что xml-конфиги как-то развиваются и продвигаются. Это легаси, которое поддерживают. PetroNotC Sharp Микросервисы тут делают 1,5 чела. И будут делать столько же. Все топики проблемные без решения и в конце авторы исчезают)))) LOL Так правильно, сложность микросеврисов она на абстракцию повыше. Т.е. сложность не написать, а спроектировать доменную модель. Этим занимаются от уровня сеньер и выше. А тут вопросы больше "технические". ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 06:41 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul А сейчас она как раз направленна на реактивность во все дыры. Ты одиночка в микросервисах и в реактивности. Спрашиваешь про одно а ты впариваешь другое. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 09:06 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul А сейчас она как раз направленна на реактивность во все дыры. Ты одиночка в микросервисах и в реактивности. Спрашиваешь про одно а ты впариваешь другое. Да и что я спрашивал? :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 12:27 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul, Ты сказал что конфигурирование java лучше БЕССПОРНО конфигурированием аннотациями. Я сказал докажи. Не люблю максималистов. Меня аннотации устраивают. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.11.2020, 12:37 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
PetroNotC Sharp mad_nazgul, Ты сказал что конфигурирование java лучше БЕССПОРНО конфигурированием аннотациями. Я сказал докажи. Не люблю максималистов. Меня аннотации устраивают. Я сказал не "бесспорно правильно", а "идеологически правильно". Как бы реальность и идеология немного разные вещи. ;-) И всё ещё жду конкретно что я спрашивал. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 06:31 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul, Ты бы хоть вики открыл прежде чем спорить авторИдеология — не наука, хотя она может опираться на научные знания. В отличие от науки идеология, как выражение частных интересов в форме всеобщности, представляет собой знание о социально-политической жизни по отношению к интересам составляющих её сил, задавая на этой основе оценку желательности или нежелательности того или иного социального бытия[1]. Теперь понятно почему ты фанат микросервисов. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 07:18 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
mad_nazgul И всё ещё жду конкретно что я спрашивал. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 07:21 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
Подолью маслица в огонь... Одно из достоинств XML-конфигурации это то, что параметры можно спокойно поменять после компиляции программы. Например настройки почтового сервера или подключения к базе. В случае же Java-конфигурации после изменения приходится перекомпилировать проект, ибо все захардкожено. Или я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:15 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
SQL2008, Прав. Но минус что портянки большие. И мне удобнее связь классов сразу смотреть. В коде. Мы же не конфигурасты 1С. Поэтому в цепочке XML - > Аннотации - > Java config Я посередине)) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:28 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
SQL2008 маслица в огонь... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 11:30 |
|
Autowired bean is null
|
|||
---|---|---|---|
#18+
SQL2008 Одно из достоинств XML-конфигурации это то, что параметры можно спокойно поменять после компиляции программы. Например настройки почтового сервера или подключения к базе. В случае же Java-конфигурации после изменения приходится перекомпилировать проект, ибо все захардкожено. Или я не прав? То что там якобы тренд писать конфигурации на жаве - оно скорее всего подразумевало либо бут, либо IaC. В чем там идеология заключается нихрена непонятно, т.е. если взять тот же бут и внимательно на него посмотреть, то невооруженным взглядом будет заметно, что на более-менее развесистые конфигурации он совершенно не заточен: ну вот если вам внезапно понадобилось сконфигурировать в приложении несколько JPA-провайдеров (две кафки, две монги, чего угодно две), то с евойным стартерами придется обломаться, а придется делать одно из: - писать свой стартер (но мы то все знаем какой треш и угар в спринговых конфигурациях творится) - забить на стартер и хардкодить в жаве названия пропертей (приложение же должно в разных средах запускаться) - взять старый добрый xml и с первого раза сделать все по-человечески ... |
|||
:
Нравится:
Не нравится:
|
|||
11.11.2020, 23:23 |
|
|
start [/forum/topic.php?all=1&fid=59&tid=2120619]: |
0ms |
get settings: |
21ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
43ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
659ms |
get tp. blocked users: |
2ms |
others: | 299ms |
total: | 1059ms |
0 / 0 |