2014-02-21 58 views
0

我已經包含代碼以下代碼段運行:@Autowired對方法

class MyNewReader implements ItemReader<MyBean>, ItemStream{  
@Resource 
SingleItemPeekableItemReader<MyBean> myBeanPeekableReader; 

@Resource 
public void setDelegate(MyJdbcReader myJdbcReader){ 
    myBeanPeekableReader.setDelegate(myJdbcReader); 
} 

我沒有在我的課MyNewReader任何財產委託。 但仍然註解@資源正在setDelegate方法工作,並工作正常。 有人可以告訴我們,沒有必要讓類中的某個屬性讓setter方法(名稱中包含該屬性)的註釋工作......這不是作爲setter注入工作嗎?

回答

0

myBeanPeekableReader.setDelegate(myJdbcReader)將其注入的jdbcReader作爲參數注入到已註釋的方法中。

是的,二傳手注射。

+0

是的,你是對的。但是我的MyNewReader類中沒有名稱委託的屬性,但資源註釋仍然有效。因此,沒有必要讓我們班的名稱代理的屬性讓這個註釋工作。特別談論@Resource on setDelegate方法。 – user2971387

+0

@ user2971387是的。雖然通常你通常會這樣做。但這不會是一個問題。它只是用一個參數來調用一個setter。 – NimChimpsky

+0

我剛剛在我的MyNewReader類中更改了方法setDelegate的名稱來調用。它仍然有效。這是否意味着在任何方法上自動裝配(不僅僅是setter方法)工作正常,方法參數的注入成功發生。 – user2971387