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

我应该为@Autowired提供一个setter吗

  •  12
  • DwB  · 技术社区  · 14 年前

    我目前的做法 @Autowired 举例如下:

    
     @Autowired
     private SomeType someMemberVariable;
    
    

    使用setter方法更好和/或更可取吗?我说的setter是指:

    
     private SomeType someMemberVariable;
    
     @Autowired
     private void setSomeMemberVariable(SomeType newValue)
     {
      someMemberVariable = newValue;
     }
    
    

    我理解可变和不可变的setter,这超出了这个问题的范围。

    2 回复  |  直到 14 年前
        1
  •  15
  •   Bozho    14 年前

    使用时我不使用setter @Autowired -它增加了样板代码。

    ReflectionTestUtils.setField(..) -作为setter,它不是编译时安全的,但我没有遇到太多问题。

    @Inject 而不是

        2
  •  16
  •   Kaleb Brasee    14 年前

    我更喜欢使用setter和getter,因为它允许您在没有在Spring上下文中运行对象时手动连接该对象(即,在单元测试中设置mock)。