注解:是一种分散式的元数据,与源代码紧绑定。
xml:是一种集中式的元数据,与源代码无绑定。
xml的优点:
1.最大的优势在于开发者能够为软件量身定制适用的标记,使代码更加通俗易懂
2.修改时,不用改源码。不涉及重新编译和部署
3.更具扩展性
4.若注解与XML同用,XML的优先级要高于注解
5.容易与其他系统进行远程交互,数据共享比较方便。
xml的缺点:
- XML文件庞大,文件格式复杂,传输占带宽;
- 服务器端和客户端都需要花费大量代码来解析XML,导致服务器端和客户端代码变得异常复杂且不易维护;
- 客户端不同浏览器之间解析XML的方式不一致,需要重复编写很多代码;
- 服务器端和客户端解析XML花费较多的资源和时间。
注解的优点:
1、XML配置起来有时候冗长,此时注解可能是更好的选择
2、注解最大的好处就是简化了XML配置;其实大部分注解在确定后很少会改变,所以在一些中小项目中使用注解反而提供了开发效率
3、注解相对于XML的另一个好处是类型安全的,XML只能在运行期才能发现问题。
注解的缺点:
1、注解分散到很多类中,不好管理和维护;
2、注解的开启/关闭必须修改源代码,因为注解是源代码绑定的,如果要修改,需要改源码,
3、缺乏灵活性,在实现复杂的逻辑上,没有XML更加强大;注解就是要么用,要么不用
4、通用配置比如事务配置,比如数据库连接池等等最好还是使用xml,即通用的配置集中化,而不是分散化,如很多人使用@Transactional来配置事务,在很多情况下这是一种太分散化的配置;
5、XML方式比注解的可扩展性和复杂性维护上好的多,比如需要哪些组件,不需要哪些;在面对这种情况,注解扫描机制比较逊色,因为规则很难去写或根本不可能写出来。