название айдишника береться из из названия класса. а так как они совпадают, то создается всего один. полагаю, что в бин дифинишн добавиться первый, который отсканируется. второй проигнорится
При создании бина с помощью аннотации @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
Большое спасибо!
Self-inject (самовпрыскивание) уже добавлен в Spring, реализуется при помощи аннотации @Autowired
интересно, спасибо)
Any chances for english subtitles?
nope!, sorry...
Из последнего примера не понял, какой из бинов, определенных через java, создается? Тот, который @Service или тот который @Bean?
название айдишника береться из из названия класса.
а так как они совпадают, то создается всего один.
полагаю, что в бин дифинишн добавиться первый, который отсканируется. второй проигнорится
@@bvalo1211 , спасибо, но я хочу точно узнать какой бин создается, без "полагаю". Сам алгоритм выбора какой?
@@yuriyleshchenko9650 проведи эксперимент
При создании бина с помощью аннотации @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
32:14