2
我想知道是否有可能使用註釋複製代碼這個XML和平:注射液ID在抽象類中的方法使用註釋
<bean id="mobileRedirectController" class="uk.co.web.device.MobileRedirectController">
<property name="deviceUserAgent" ref="mobileUserAgent" />
</bean>
<util:set id="mobileUserAgent">
<value>Mobile</value>
<value>iPhone</value>
<value>...</value>
</util:set>
<bean id="tabletRedirectController" class="uk.co.web.device.TabletRedirectController">
<property name="deviceUserAgent" ref="tabletUserAgent" />
</bean>
<util:set id="tabletUserAgent">
<value>iPad</value>
<value>...</value>
</util:set>
和我的課都是這樣(只有關我的問題的代碼):
public class MobileRedirectController extends AbstractRedirectController {
}
public class TabletRedirectController extends AbstractRedirectController {
}
public abstract class AbstractRedirectController {
protected Set<String> deviceUserAgent = new HashSet<String>();
public void setDeviceUserAgent(Set<String> deviceUserAgent) {
this.deviceUserAgent = deviceUserAgent;
}
}
現在,如果我刪除XML的豆實例,我有這樣的事情:
<util:set id="mobileUserAgent">
<value>Mobile</value>
<value>iPhone</value>
<value>...</value>
</util:set>
<util:set id="tabletUserAgent">
<value>iPad</value>
<value>...</value>
</util:set>
個
及其類別:
@Controller("mobileRedirectController")
public class MobileRedirectController extends AbstractRedirectController {
}
@Controller("tabletRedirectController")
public class TabletRedirectController extends AbstractRedirectController {
}
public abstract class AbstractRedirectController {
protected Set<String> deviceUserAgent = new HashSet<String>();
public void setDeviceUserAgent(Set<String> deviceUserAgent) {
this.deviceUserAgent = deviceUserAgent;
}
}
而現在我的問題,是有辦法注入在tabletRedirectController相關的控制器mobileRedirectController和tabletUserAgent我的列表mobileUserAgent不從AbstractRedirectController代碼移到MobileRedirectController和TabletRedirectController?
嗯好的,好主意的構造函數注入,並將其與'@資源(「mobileUserAgent」工程)''但不能用'@Autowire @Qualifier(「mobileUserAgent」),似乎我們不能用'@ Autowire'注入一個集合,你知道爲什麼這個限制嗎? –
Spring版本<4中的IoC容器不支持基於泛型識別注入候選項。由於'@ Autowired'是分型的,這是一個問題。 '@ Resource'更適合通過名稱/ id來引用bean。 [更多參考資料請閱讀此文](http://docs.spring.io/spring/docs/3.0.0.M3/reference/html/ch04s11.html#beans-autowired- annotation-qualifiers) – Bart