春豆田注射

使用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实现也希望找到构造它的代理的方法。