Достаточно детально, практично и наглядно. Не смотря на то, что описываются не самые простые и базовые понятия, все понятно. Спасибо вам, пишите еще видео!
@deadlocksofdeadblocks72255 жыл бұрын
Спасибо! Скоро будут новые)
@89568756867835678 Жыл бұрын
вай спасибо тебе добрый человек за такое хорошее объяснение!!!☕
@dtts773 жыл бұрын
Ахаха, с рисунка выпал, сразу видно, что человек реально шарит (сам такими каракулями раньше объяснял :D ). Сам урок - топовый, удачи во всем!
@deadlocksofdeadblocks72253 жыл бұрын
Ахахах - я сам со своих рисунков периодически ловлю кринж :D Спасибо !
@АлександрЯковенко-п5ш4 жыл бұрын
Круто делаешь! Спасибо за труд)
@deadlocksofdeadblocks72254 жыл бұрын
Спасибо!)
@olegeek5 жыл бұрын
Супер!! :) Очень полезное и нужно дело делаешь!
@deadlocksofdeadblocks72255 жыл бұрын
Спасибо большое!)
@BackstageNomad2 жыл бұрын
все круто, после потрошителя самое то
@lindx25333 жыл бұрын
10:56 стоит уточнить что PostConstruct лежит в javax. javax.annotation javax.annotation-api 1.3.2
@УмарКаригов Жыл бұрын
Спасибо
@АндрейСкворцов-з6ш3 жыл бұрын
оочень круто!
@fife33663 жыл бұрын
Видос просто топ, спасибо!
@deadlocksofdeadblocks72253 жыл бұрын
Рад, что видос пригодился ;]
@Михаил-я7ь1н2 жыл бұрын
очень полезно
@volodymyrkhoma99175 жыл бұрын
Очередной полезный урок. Спасибо! Кстати, есть ли необходимость возвращать свойство Accesible в его первоначальное значение?
@deadlocksofdeadblocks72255 жыл бұрын
Спасибо Вам, за приятные слова) Поле само по себе остается приватным, оно становится публичным лишь для переменной Field. Насколько я знаю в этом необходимости нет
@deadlocksofdeadblocks72255 жыл бұрын
В качестве домашнего задания можете написать аналогичный примеры для xml и попробовать ответить на вопрос: Как работает autowired и AutowiredAnnotationBeanPostProcessor, если у нас единственный конструктор с аннотацией autowired над ним (для этого можно покопаться в исходниках спринга - даже если не найдете ответа - наверняка узнаете что-то новое о спринге)
@jispainsooner28254 жыл бұрын
Если единственный конструктор, то @Autowired можно не указывать(над конструктором).
@antonkl8584 жыл бұрын
Интересно, спасибо. Только не понял, где должен быть BeanDefinition
@deadlocksofdeadblocks72254 жыл бұрын
Спасибо! Напишите на какой минуте непонятны мои объяснения - и я постараюсь ответить)
@antonkl8584 жыл бұрын
@@deadlocksofdeadblocks7225 Я не нашел на видео где и как работает BeanDefinition. Вы его видимо тут проигнорировали. Возможно он не так важен в данном контексте?
@deadlocksofdeadblocks72254 жыл бұрын
@@antonkl858 Если мне не изменяет память - я хотел сделать вторую часть урока "Как Spring работает с аннотациями, создаем свой контекст (часть 1)" - где уже детальнее хотел рассказать как работает спринг (про BeanDefinition, фабрики и тд) но руки не дошли... Думаю в будущем восполню этот пробел Вот хорошая статья на хабре, которая, возможно, может вам помочь habr.com/ru/post/222579/
@antonkl8584 жыл бұрын
@@deadlocksofdeadblocks7225 thx
@caffeinejavacode14753 жыл бұрын
Можем ли мы вместо метода init написать обычный метод?
@deadlocksofdeadblocks72253 жыл бұрын
Не совсем понял вопрос) Если вы имеете ввиду название - то название у метода может быть любое, не обязательно "init")
@caffeinejavacode14753 жыл бұрын
@@deadlocksofdeadblocks7225 я не пойму в каких реальных случаях можно его использовать, не простo sout а реальный кейс, не могу найти пример, а на собесе спрашивают
@deadlocksofdeadblocks72253 жыл бұрын
@@caffeinejavacode1475 Честно говоря примеров может быть масса - условно говоря - это зависит от архитектуры класса/проекта. Например, логирование: public class Foo { @Inject Logger LOG; @PostConstruct public void fooInit(){ LOG.info("This will be printed; LOG has already been injected"); } public Foo() { LOG.info("This will NOT be printed, LOG is still null"); // NullPointerException will be thrown here } } Если вызвать метод логирования в конструкторе - будет NPE. Если вызвать логирование в PostConstruct - все будет ок, потому что бин LOG заинжектится уже к этому моменту. На серверах часто пишут логирование - чтобы отслеживать ошибки/ворнинги. Вот второй пример - когда мы хотим добавить юзеров по дефолту: @Component public class DbInit { @Autowired private UserRepository userRepository; @PostConstruct private void postConstruct() { User admin = new User("admin", "admin password"); User normalUser = new User("user", "user password"); userRepository.save(admin, normalUser); } } Еще например можно отрывать соединение с базой (ее бин инжектится) Но опять же - вариантов использования может быть немало) Мой совет - дполнительно к моим словам посмотрите реальные проекты на гитхабе в которых она используется)
@s.portowyi153 жыл бұрын
6:56 над конструктором @Autowired можно и не ставить.
@dusheslov27003 жыл бұрын
Чювак, спасибо за уроки но в этом ты сильно тупишь) ты в конструкторе пытаешься воспользоваться не инициализированными полями и spring тут не причём)) я уверен ты и сам понимаешь свой затуп)))))))))))))))))))))))))))))))))))))))))))))))))
@deadlocksofdeadblocks72253 жыл бұрын
Напиши таймкод
@dusheslov27003 жыл бұрын
@@deadlocksofdeadblocks7225 забей, ты дальше говоришь что так работать не будет но это было логично что не будет))