Spring中构造方法注入和设值注入有什么区别
设值注入的优势:
- 设值注入写法直观便于理解,使各种关系清晰明了。
- 设值注入可以避免因复杂的依赖实例化时所造成的性能问题。
- 设值注入的灵活性较强。
构造方法注入的优势:
- 构造方法注入可以决定依赖关系的注入顺序,有限依赖的优先注入。
- 对于依赖关系无需变化的Bean,构造方法注入使所有的依赖关系全部在构造器内设定,可避免后续代码对依赖关系的破坏。
- 构造方法注入中只有组建的创建者才能改变组建的依赖关系,更符合高内聚原则。
建议:
采用设值注入为主,构造注入为辅的注入策略。依赖关系无需变化时,尽量采用构造注入,而其它的依赖关系的注入,则考虑设值注入。