簡體   English   中英

春豆田注射

[英]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注釋並注入一個屬性(使用表達式語言)
  • 看一看Project Lombok ,它會讓你跳過所有的setter和getters(以及更多)

Spring支持JSR-250 @Resource注釋開箱即用的基於注釋的字段注入。 Spring自己的@AutowiredJSR 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM