什么是注解
注解是 JDK 1.5 引入的功能. 可以看作是对 一个 类 / 方法 的一个扩展的模版, 每个 类 / 方法 按照注解类中的规则, 来为 类 / 方法 注解不同的参数, 在用到的地方可以得到不同的 类 / 方法 中注解的各种参数与值.
为什么要用注解
在 JDK 1.5 之前, Java 还没引入注解, 这个时候如果我们要在 Spring 中声明一个 Bean, 我们只能通过 XML 配置的方式.
- public class DemoService{ }
- <bean id="demoService" class="com.chenshuyi.DemoService"/>
但当有了注解, 我们就可以不必写一个 XML 配置文件, 可以直接在 DemoService 类上完成 Bean 的声明工作.
- @Service
- public class DemoService{ }
在表面上看来, 我们通过注解的方式减少了一个 XML 配置文件, 减少了开发代码量. 但这真的是我们用注解而不用 XML 配置文件的原因吗?
在回答这个问题之前, 我们再来回顾一下上面两种配置方式的特点:
对于注解的方式. 我们会发现它和代码结合得很紧密, 所以注解比较适合做一些与代码相关度高的操作, 例如将 Bean 对应的服务暴露出去.
对于 XML 配置方式. 我们会发现它将配置和代码隔离开来了所以 XML 配置更适合做一些全局的, 与具体代码无关的操作, 例如全局的配置等.
我相信很多人此前对于注解的认识就是方便开发. 但事实上使用注解还是 XML 的判断标准应该是: 该配置与代码的相关度. 如果代码与配置相关度高, 那么使用注解配置, 否则使用 XML 配置.
注解和配置文件的比较
优点:
配置文件
遵循 OCP 开发原则, 修改配置文件即可进行功能扩展 (OCP 开闭原则 Open Closed Principle)
集中管理对象和对象之间的组合关系, 易于阅读
注解
开发速度快
编译期间容易发现错误的出处
缺点:
配置文件
开发速度相对较慢
编译时很难检查出错误, 运行中的错误很难定位, 调试难度较大
注解
管理分散, 基本每个类上都有
扩展功能时, 没有遵循 OCP 开发原则
来源: http://www.bubuko.com/infodetail-2678015.html