[英]Spring bean fields injection
使用Spring IoC允許設置通過setter公開的bean屬性:
public class Bean {
private String value;
public void setValue(String value) {
this.value = value;
}
}
而bean的定義是:
<bean class="Bean">
<property name="value" value="Hello!">
</bean>
是否有任何現有的Spring Framework插件/類允許直接將bean字段作為屬性公開而不定義setter? 像這樣的bean具有相同的bean定義:
public class Bean {
@Property
private String value;
}
您可以:
@Value
注釋並注入一個屬性(使用表達式語言) Spring支持JSR-250 @Resource
注釋開箱即用的基於注釋的字段注入。 Spring自己的@Autowired
和JSR 330的@Inject
也有效 。
您只需要將此行添加到context.xml :
<context:annotation-config/>
參考:
你要求的是不可能的。 Spring訂閱約定優於配置。 所以它希望有固定器和吸氣劑。 雖然Spring可以直接進樣; 而Spring使用Reflection來實現這一點,Spring沒有提供反轉這個過程來使用Reflection來訪問沒有setter或getter的字段。 即使Spring AOP實現也希望找到構造它的代理的方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.