У меня есть код, содержащий ниже фрагмент кода работает:@Autowired по методам
class MyNewReader implements ItemReader<MyBean>, ItemStream{
@Resource
SingleItemPeekableItemReader<MyBean> myBeanPeekableReader;
@Resource
public void setDelegate(MyJdbcReader myJdbcReader){
myBeanPeekableReader.setDelegate(myJdbcReader);
}
У меня нет какой-либо собственности делегата в моем классе MyNewReader. Но все же аннотация @Resource работает над методом setDelegate и работает нормально. Может ли кто-нибудь сказать, что нет необходимости иметь свойство в классе, чтобы аннотация по методу setter (имеющего это свойство в его имени) работает ... Не работает ли это как инъекция setter?
Да, вы правы. Но у меня нет свойства делегата имени в моем классе MyNewReader, но работает аннотация. Так что нет необходимости иметь свойство делегата имени в нашем классе, чтобы эта аннотация работала. Говоря особенно о @Resource о методе setDelegate. – user2971387
@ пользователь2971387 да. Хотя обычно вы обычно это делаете. Но это не проблема. Его просто вызывает сеттер с аргументом. – NimChimpsky
Я просто изменил имя метода setDelegate в моем классе MyNewReader tocaller. И это все еще работает. Означает ли это, что autowiring на любом методе (а не только метод setter) отлично работает, а метод аргумента метода успешно выполняется. – user2971387