注解的那些事儿(一)| 为什么要使用注解?

注解是 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配置。

这篇文章比较简单,只是简单比较了 XML 配置和注解配置之间的区别,从而引出它们各自的使用场景。下篇文章我将带大家入门自定义注解,敬请关注。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android先生

Android Binder面试详解

目前linux支持的IPC包括传统的管道、System V IPC、即消息队列/共享内存/信号量,以及socket中只有socket支持Client-Serve...

1171
来自专栏技术墨客

Spring核心——Stereotype组件与Bean扫描

在注解自动装载中介绍了通过注解(Annotation)自动向Bean中注入其他Bean的方法,本篇将介绍通过注解(Annotation)向容器添加Bean的方法...

912
来自专栏JMCui

Netty 系列二(传输).

    上一篇文章我们提到 Netty 的核心组件是 Channel、回调、Future、ChannelHandler、EventLoop,这篇文章主要是对 C...

1452
来自专栏Java职业技术分享

Spring Boot 面试题精华

Spring Boot 是微服务中最好的 Java 框架. 我们建议你能够成为一名 Spring Boot 的专家.

1.3K4
来自专栏JavaNew

Spring Boot实战:逐行释义HelloWorld

1402
来自专栏开发与安全

linux系统编程之文件与I/O(五):文件的内核结构file和dup实现重定向

一、打开文件内核数据结构 1、一个进程打开两个文件 ? 文件状态标志:读、写、追加、同步、非阻塞等 2、一个进程两次打开同一文件 ? 3、两个进程打开同一文...

2189
来自专栏一个会写诗的程序员的博客

《Spring Boot极简教程》第4章 零XML配置的Spring Boot Application小结

Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件、YAML 文件、环境变量和命令行参数来定义优先级不同...

802
来自专栏JavaNew

Spring Boot实战:逐行释义HelloWorld

3025
来自专栏JavaQ

你需要知道的开源项目

Guava是Google的开源项目,它包含了Google工程师经常使用的内部核心库,例如集合、缓存、原语支持、并发库、通用注释、字符串处理、哈希、反射、I/O等...

1352
来自专栏一个会写诗的程序员的博客

第4章 零XML配置的Spring Boot Application小结

Spring Boot 提供了一种统一的方式来管理应用的配置,允许开发人员使用属性properties文件、YAML 文件、环境变量和命令行参数来定义优先级不同...

1054

扫码关注云+社区

领取腾讯云代金券