Spring XML依赖注入 vs Annotation注释注入
翻译stackoevrflow上的大佬的回答
两者各有自己的优势,推荐两者混合使用
- xml配置的方式使得程序员的代码与库中的代码保持相互的独立性,使用注释的方式(注释我们自己写的库代码)将会使得我们的代码对库代码产生依赖,被注释修改过的代码会失去库函数的性质;
- xml的配置方式使得不需要对代码进行重新的编译,便于测试
- 当被注入的组件不会变化的时候(这个时候不会频繁地更改源码);例如对于不同的构建使用不同的依赖项,(一个例子是,一个项目可能会变化地使用不同的数据库驱动器,此时采用注释的方式进行注入就没有xml注入的好);
- annotation注释的方式可以很方便的进行注入,所以一些小的组件可以使用annotation的方式实现注入;但是这些依赖需要在应用文档中体现出来,方便后期的组装和运营
- annotaion注入的方式相对较为分散,可能会导致冲突传递(?)问题
因此考虑组件的灵活性(不同的组件组装使用或者是业务场景变换多),使用xml配置的方式