Spring4.x推荐使用java配置,为什么推荐这种配置方式?与xml配置和注解配置相比有什么优势?

曾经有段时间Java的生态圈走了极端,为了彻底的解耦,把“什么时候需要什么样的实现”这个问题的解决方案,写在配置文件(也就是xml里),因为xml不需要重新编译,因此达成了“彻底解耦”这个目标(我需要什么实现我就改配置文件就行了,不需要改代码,不需要重新编译),然而随着时间的发展,人们发现了以下问题
1. 大部分时候我们并不需要解耦的如此彻底,应用级程序甚至很少遇到要到要换接口实现。
2. xml的配置学习起来门槛太高了,就算老手看一个配置文件经常也能看的云里雾里,再加上xml文件不能做类型检查,有时候你实际上是把一个错误的类装配进接口,导致系统报错,你却要找半天错误。

因此这几年提出了新的口号叫“约定大于配置”,javaconfig实际上就是约定大于配置的产物,它做的事情和xml配置几乎相同,但是因为有类型检查且本身就是java代码的原因,它的可读性和可维护性远高于xml配置,新手接手项目的门槛大大降低。而代价不过是放弃那天知道什么时候才可能用的上“彻底解耦”的能力。所以是值得的.

你可能感兴趣的:(#,Spring,backend)