在最近我从事的一些大型项目中,选择其中一种(XML或注释)似乎变得越来越重要。随着项目的发展,一致性对于可维护性非常重要。
我的问题是:与基于注释的配置相比,基于XML的配置有哪些优势?与基于XML的配置相比,基于注释的配置有哪些优势?
注释有其用途,但它们不是杀死XML配置的灵丹妙药。我建议将两者混合!
例如,如果使用Spring,则将XML用于应用程序的依赖注入部分是完全直观的。相比之下,这使代码的依赖关系脱离了将要使用它的代码,相反,在代码中使用某种需要依赖关系的注释使代码知道这种自动配置。
但是,与其将XML用于事务管理,不如将其标记为带有注释的事务方法是很有意义的,因为这是程序员可能希望知道的信息。但是,不应将接口作为SubtypeY而不是SubtypeX插入类中,因为如果您现在想要注入SubtypeX,则必须更改代码,而无论如何您都必须先进行接口协定,所以使用XML,您只需要更改XML映射即可,而且这样做非常快捷,轻松。
我没有使用过JPA批注,所以我不知道它们的优劣,但是我认为将bean的映射关系保留为XML也很好,因为该对象不必关心其信息来自何处。 ,它应该只关心它可以使用其信息做什么。但是,如果您喜欢JPA(我对此没有任何经验),就一定要去做。
一般而言:如果注释提供了功能并本身充当注释,并且没有将代码绑定到某些特定过程以使没有该注释的功能正常运行,请使用注释。例如,标记为事务性的事务方法不会破坏其操作逻辑,并且还可以充当良好的代码级注释。否则,此信息最好用XML表示,因为尽管它最终会影响代码的运行方式,但不会更改代码的主要功能,因此不属于源文件。