spring 注解的优势缺点

注解与XML配置的区别spring

注解:是一种分散式的元数据,与源代码耦合。数据库

xml :是一种集中式的元数据,与源代码解耦。设计模式

 

所以注解和XML的选择上能够从两个角度来看:分散仍是集中,源代码耦合/解耦。安全

 

注解的缺点:mvc

一、不少朋友好比在使用spring注解时,会发现注解分散到不少类中,很差管理和维护;翻译

二、注解的开启/关闭必须修改源代码,由于注解是源代码绑定的,若是要修改,须要改源码,有这个问题,因此若是是这种状况,仍是使用XML配置方式;好比数据源;设计

三、注解还一个缺点就是灵活性,好比在以前翻译的Spring Framework 4.0 M1: WebSocket 支持;在实现复杂的逻辑上,没有XML来的更增强大;注解就是要么用,要么不用;xml

四、通用配置仍是走XML吧,好比事务配置,好比数据库链接池等等,即通用的配置集中化,而不是分散化,如不少人使用@Transactional来配置事务,在不少状况下这是一种太分散化的配置;blog

五、XML方式比注解的可扩展性和复杂性维护上好的多,好比须要哪些组件,不须要哪些;在面对这种状况,注解扫描机制比较逊色,由于规则很难去写或根本不可能写出来;事务

 

注解的好处:

一、XML配置起来有时候冗长,此时注解多是更好的选择,如jpa的实体映射;注解在处理一些不变的元数据时有时候比XML方便的多,好比spring 声明式事务管理,若是用xml写的代码会多的多;

二、注解最大的好处就是简化了XML配置;其实大部分注解必定肯定后不多会改变,因此在一些中小项目中使用注解反而提供了开发效率,因此不必一头走到黑;

三、注解相对于XML的另外一个好处是类型安全的,XML只能在运行期才能发现问题。

 

注解也好,XML也好,咱们仍是须要一些开关/替换机制来控制特殊需求,以改变那种要么所有 要么没有的方案。。

 

还一种呼声就是约定大于配置,这种方案可能在某些场景下是最优的,可是遇到一些复杂的状况可能并不能解决问题,因此此时注解也是一个不错的方案。尤为在使用springmvc时,好处是能体会的出的。

 

无论使用注解仍是XML,作的事情仍是那些事情,但注解和XML都不是万能的,知足本身的需求且已一种更简单的方式解决掉问题便可。

 

就像探讨一下技术问题,不少人都带有很强的我的喜爱来评判一个东西的好坏,这种探讨没有任何意义,咱们最终的目的是解决方案,因此咱们应该探讨的是能不能解决问题,能不能以更容易理解的方式解决问题,能不能更简单的解决问题。

 

不论是约定大于配置、注解仍是XML配置也好,没有哪一个是最优的,在合适的场景选择合适的解决方案这才是重要的。就像设计模式同样:是对特定环境中重复出现的特定问题的一个通过前人验证了的解决方案。

相关文章
相关标签/搜索