Евгений Борисов - Spring Puzzlers: тонкости и нюансы работы Spring

แชร์
ฝัง
  • เผยแพร่เมื่อ 25 พ.ย. 2024

ความคิดเห็น • 11

  • @Дмитрий-з7м9е
    @Дмитрий-з7м9е ปีที่แล้ว

    Большое спасибо!

  • @MrStim
    @MrStim 3 หลายเดือนก่อน +1

    Self-inject (самовпрыскивание) уже добавлен в Spring, реализуется при помощи аннотации @Autowired

  • @turumpurum9374
    @turumpurum9374 ปีที่แล้ว +1

    интересно, спасибо)

  • @jorczyk
    @jorczyk 3 ปีที่แล้ว +1

    Any chances for english subtitles?

  • @yuriyleshchenko9650
    @yuriyleshchenko9650 5 ปีที่แล้ว +2

    Из последнего примера не понял, какой из бинов, определенных через java, создается? Тот, который @Service или тот который @Bean?

    • @bvalo1211
      @bvalo1211 5 ปีที่แล้ว

      название айдишника береться из из названия класса.
      а так как они совпадают, то создается всего один.
      полагаю, что в бин дифинишн добавиться первый, который отсканируется. второй проигнорится

    • @yuriyleshchenko9650
      @yuriyleshchenko9650 5 ปีที่แล้ว

      @@bvalo1211 , спасибо, но я хочу точно узнать какой бин создается, без "полагаю". Сам алгоритм выбора какой?

    • @onehornstud
      @onehornstud 5 ปีที่แล้ว +5

      @@yuriyleshchenko9650 проведи эксперимент

    • @vladideni
      @vladideni 3 ปีที่แล้ว +6

      При создании бина с помощью аннотации @Component и с помощью конфига одновременно происходит создание только через @Bean.
      Провёл эксперимент (в моём случае бин имеет айди printerBean. Получил его bean definition и вызвал toString() - этого достаточно для наших целей).
      beanDefinition.toString() в случае присутствия обоих аннотаций:
      printerBean -> {ConfigurationClassBeanDefinitionReader$ConfigurationClassBeanDefinition@2285} "Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=config; factoryMethodName=printerBean; initMethodName=null; destroyMethodName=(inferred); defined in contextes.Config".
      Если убрать @Bean, то beanDefinition.toString() будет следующий: printerBean -> {ScannedGenericBeanDefinition@2248} "Generic bean: class [contextes.PrinterBean]; scope=singleton; abstract=false; lazyInit=false; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodName=null; destroyMethodName=null; defined in file [D:
      epos\test\target\classes\contextes\PrinterBean.class]"
      Т.е. в случае совпадающего айди @Bean имеет приоритет перед @Component

  • @UnitedFeodor
    @UnitedFeodor ปีที่แล้ว

    32:14