代码之家  ›  专栏  ›  技术社区  ›  Vladimir

春豆田注射

  •  10
  • Vladimir  · 技术社区  · 16 年前

    public class Bean {
        private String value;
        public void setValue(String value) {
            this.value = value;
        }
    }
    

    bean的定义是:

    <bean class="Bean">
        <property name="value" value="Hello!">
    </bean>
    

    public class Bean {
        @Property
        private String value;
    }
    
    3 回复  |  直到 16 年前
        1
  •  6
  •   Bozho    16 年前

    你可以:

    • 使用 @Value 注释并注入属性(使用表达式语言)
    • 看看 Project Lombok ,这将允许您跳过所有setter和getter(以及更多)
        2
  •  5
  •   Sean Patrick Floyd    16 年前
        3
  •  1
  •   cyotee doge    12 年前

    你要的是不可能的。Spring订阅约定优先于配置。所以它希望有二传手和二传手。虽然Spring可以直接进行场注入;Spring使用反射来实现这一点,但是Spring没有提供反向过程,即使用反射来访问没有setter或getter的字段。即使是springaop实现也希望找到构造其代理的方法。