春豆田注射
使用Spring IoC允许设置通过setter公开的bean属性:
public class Bean { private String value; public void setValue(String value) { this.value = value; } }
而bean的定义是:
是否有任何现有的Spring Framework插件/类允许直接将bean字段作为属性公开而不定义setter? 像这样的bean具有相同的bean定义:
public class Bean { @Property private String value; }
您可以:
- 使用
@Value
注释并注入一个属性(使用表达式语言) - 看一看Project Lombok ,它会让你跳过所有的setter和getters(以及更多)
Spring支持JSR-250 @Resource
注释开箱即用的基于注释的字段注入。 Spring自己的@Autowired
和JSR 330的@Inject
也可以工作 。
您只需要将此行添加到context.xml :
参考:
- 基于注释的容器配置
-
@Autowired
和@Inject
-
@Resource
你要求的是不可能的。 Spring订阅约定优于配置。 所以它希望有定位器和吸气剂。 虽然Spring可以直接进样; Spring使用Reflection来实现这一点,Spring没有提供反转这个过程来使用Reflection来访问没有setter或getter的字段。 即使Spring AOP实现也希望找到构造它的代理的方法。