没有合适的资源?快使用搜索试试~ 我知道了~
一、为什么要学注解? 在日常开发中,基本都是在使用别人定义或是各种框架的注解,比如Spring框架中常用的一些注解:@Controller、@Service、@RequestMapping,以此来实现某些功能,但是却不知道如何实现的,所以如果想学习这些框架的实现原理,那么注解就是我们必知必会的一个点。其次,可以利用注解来自定义一些实现,比如在某个方法上加一个自定义注解,就可以实现方法日志的自动记录打印,这样也可以展现足够的逼格。所以如果你想走上人生巅峰,更好的利用框架,又或者想要高一点的逼格,从团队中突出,那么学习注解都是前提。 二、注解是什么? 在Java中
资源详情
资源评论
资源推荐
Java注解入门到精通,这一篇就够了注解入门到精通,这一篇就够了
一、为什么要学注解?一、为什么要学注解?
在日常开发中,基本都是在使用别人定义或是各种框架的注解,比如Spring框架中常用的一些注解:@Controller、@Service、@RequestMapping,以此来实现某些功能,但是却不知道如
何实现的,所以如果想学习这些框架的实现原理,那么注解就是我们必知必会的一个点。其次,可以利用注解来自定义一些实现,比如在某个方法上加一个自定义注解,就可以实现
方法日志的自动记录打印,这样也可以展现足够的逼格。所以如果你想走上人生巅峰,更好的利用框架,又或者想要高一点的逼格,从团队中突出,那么学习注解都是前提。
二、注解是什么?二、注解是什么?
在Java中注解其实就是写在接口、类、属性、方法上的一个标签,或者说是一个特殊形式的注释,与普通的//或/**/注释不同的是:普通注释只是一个注释,而注解在代码运行时代码运行时是可
以被反射反射读取并进行相应的操作,而如果没有使用反射或者其他检查,那么注解是没有任何真实作用的,也不会影响到程序的正常运行结果。
举个例子@Override就是一个注解,它的作用是告诉阅读者(开发人员、编译器)这个方法重写了父类的方法,对于开发人员只是一个标志,而编译器则会多做一些事情,编译器如果发
现方法标注了这个注解,就会检查这个方法到底是不是真的覆写了父类的方法,如果没有那就是在欺骗他的感情,甭废话,编译时直接给你报个错,不留情面的那种。而如果不添
加@Override注解,程序也是可以正常运行的,不过缺乏了静态的检查,本来是想覆写父类的hello方法的,却写成了he110方法,这就会有些尴尬了。
在spring框架中加注的注解会影响到程序的运行,是因为spring内部使用反射操作了对应的注解。
上面的说法是为了方便理解的,那么下面来个稍微正式一点的:注解是提供一种为程序元素设置元数据的方法注解是提供一种为程序元素设置元数据的方法,理解起来还是一样的,程序元素就是指接口、类、属性、方法,这些
都是属于程序的元素,那啥叫元数据呢?就是描述数据的数据(data about data),举个简单的例子,系统上有一个sm.png文件,这个文件才是我们真正需要的数据本身,而这个文件的
属性则可以称之为sm.png的元数据,是用来描述png文件的创建时间、修改时间、分辨率等信息的,这些信息无论是有还是没有都不影响它作为图片的性质,都可以使用图片软件打
开。
元数据是添加到程序元素如方法、字段、类和包上的额外信息,注解就是一种载体形式
注解不能直接干扰程序代码的运行
三、为什么要使用注解?三、为什么要使用注解?
以Spring为例,早期版本的Spring是通过XML文件的形式对整个框架进行配置的,一个缩减版的配置文件如下
在xml文件中可以定义Spring管理的Bean、事物切面等,话说当年非常流行xml配置的。优点呢就是整个项目的配置信息集中在一个文件中,从而方便管理,是集中式的配置集中式的配置。缺点
也显而易见,当配置信息非常多的时候,配置文件会变得越来越大不易查看管理,特别是多人协作开发时会导致一定的相互干扰。
现在都提倡解耦、轻量化或者说微小化,那么注解就顺应了这一需求,各个包或模块在内部方法或类上使用注解即可实现指定功能,而且使用起来灰常方便,简单易懂。缺点呢就是
不方便统一管理,如果需要修改某一类功能,则需要整体搜索逐个修改,是分散式的存在各个角落分散式的存在各个角落。
这里扩充一下,Spring注解替代了之前Spirng xml文件,是不是说spring的xml也是一种元数据呢?对的,spring的配置文件xml也是元数据的一种表现形式。不过不过xml的方式是集中式的方式是集中式
的元数据,不需要和代码绑定的,而注解是一种分散式的元数据设置方式的元数据,不需要和代码绑定的,而注解是一种分散式的元数据设置方式。
四、注解的作用四、注解的作用
作为 Java开发几乎都使用过一些框架,相信大家对注解的作用都是有所体会的,这里再啰嗦几句加深印象。根本来说注解就是一个注释标签。开发者的视角可以解读出这个类/方法/
属性的作用以及该怎么使用,而从框架的视角则可以解析注解本身和其属性实现各种功能,编译器的角度则可以进行一些预检查(@Override)和抑制警告(@SuppressWarnings)等。
作为特定标记,用于告诉编译器一些信息
编译时动态处理,如动态生成代码
运行时动态处理,作为额外信息的载体,如获取注解信息
五、注解的分类五、注解的分类
通常来说注解分为以下三类
元注解 – java内置的注解,标明该注解的使用范围、生命周期等。
标准注解 – Java提供的基础注解,标明过期的元素/标明是复写父类方法的方法/标明抑制警告。
自定义注解 – 第三方定义的注解,含义和功能由第三方来定义和实现。
5.1 元注解元注解
用于定义注解的注解,通常用于注解的定义上,标明该注解的使用范围、生效范围等。元XX 都代表最基本最原始的东西,因此,元注解就是最基本不可分解的注解,我们不能去改我们不能去改
变它只能使用它来定义变它只能使用它来定义
自定义的注解自定义的注解
。元注解包含以下五种: @Retention、@Target、@Documented、@Inherited、@Repeatable,其中最常用的是@Retention和@Target下面分
别介绍一下这五种元注解。
@Retention ★★★★★
中文翻译为保留的意思,标明自定义注解的生命周期
weixin_38741759
- 粉丝: 3
- 资源: 964
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0