使用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;
}
答案 0 :(得分:6)
你可以:
@Value
注释并注入属性(使用表达式语言)答案 1 :(得分:5)
Spring支持out of the box @Resource
注释的基于注释的字段注入JSR-250。 Spring自己的@Autowired
和JSR 330的@Inject
also work。
您只需要add this line to your context.xml:
<context:annotation-config/>
<强>参考:强>
答案 2 :(得分:1)
你要求的是不可能的。 Spring订阅约定优于配置。所以它希望有固定器和吸气剂。虽然Spring可以直接进样;而Spring使用Reflection来实现这一点,Spring没有提供反转这个过程来使用Reflection来访问没有setter或getter的字段。即使Spring AOP实现也希望找到构造它的代理的方法。