我对直接的字段依赖注入很感兴趣。传统上,Spring支持构造函数注入(向构造函数提供参数)和基于setter的注入(在调用时调用setter)。
但是,Spring也能够直接注入字段(设置对象的成员字段而不使用设置器方法),这可以通过使用@Autowired
注释字段来证明。自动装配仅限于" beans ",所以原始值不能被注入(尽管这可以通过创建"java.lang.String“类的beans来规避-这是可行的,但具有自动装配的正常注意事项)。除此之外,Spring还支持@Value
直接从属性等为成员字段设置值。
然而,Spring不允许将属性直接设置为成员字段(无需自动装配)。
我的问题是:为什么?
它显然有能力做到这一点,那么为什么它不能呢?有没有什么大的负面影响来阻止这一点?或者是因为功能有限,所以只有自动装配才有意义?它需要比调用setter更大的技巧吗?
请注意,我不想讨论拥有setter和getter的相对优点,只是讨论Spring做出这个选择的原因。
https://stackoverflow.com/questions/5433143
复制相似问题