Java基础之一注解

今天在网上看东西,发现解释注解的文章都不全,各个方面的都有,然后我就想把这些总结一下,也方便自己下次查看:

一:注解的定义

注解(Annontation)是Java5开始引入的新特征。它提供了一种安全的类似注释的机制,用来将任何的信息或元数据(metadata)与程序元素(类、方法、成员变量等)进行关联。为程序的元素(类、方法、成员变量)加上更直观更明了的说明,这些说明信息是与程序的业务逻辑无关,并且供指定的工具或框架使用。注解(Annontation)像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数及本地变量的声明语句中。Java注解是附加在代码中的一些元信息,用于一些工具在编译、运行时进行解析和使用,起到说明、配置的功能。注解不会也不能影响代码的实际逻辑,仅仅起到辅助性的作用。包含在 java.lang.annotation 包中。

二:注解的用途

1、生成文档。

2、跟踪代码依赖性,实现替代配置文件功能。

3、在编译时进行格式检查。如@override 放在方法前,如果你这个方法并不是覆盖了超类方法,则编译时就能检查出。

三:注解的原理

注解本质是一个继承了Annotation的特殊接口,其具体实现类是Java运行时生成的动态代理类。而我们通过反射获取注解时,返回的是Java运行时生成的动态代理对象$Proxy1。通过代理对象调用自定义注解(接口)的方法,会最终调用AnnotationlnvocationHandler的invoke方法。该方法会从memberValues这个Map中索引出对应的值。而memberValues的来源是Java常量池。

四:常用的注解

1. @Controller:标识一个该类是Spring MVC controller处理器,用来创建处理http请求的对象

2. @RestController:Spring4之后加入的注解,原来在@Controller中返回json需要@ResponseBody来配合,如果直接用@RestController替代@Controller就不需要再配置@ResponseBody,默认返回json格式。

3. @Service:用来装配bean,主要用于标注业务层组件,通过注解的方式将该类加入到spring 中进行管理。

4. @Autowired:用来装配bean,可以写在字段上,也可以写在方法上。默认情况下必须要求依赖对象必须存在,如果要允许null值,可以设置它的required属性为false,例如:@Autowired(required=false)。

5. @RequestMapping:类定义处:提供初步的请求映射信息,相对于 WEB 应用的根目录。方法处:提供进一步的细分映射信息,相对于类定义处的 URL。

6. @RequestParam:用于将请求参数区数据映射到功能处理方法的参数上。

这些都算是比较常用的注解,还有一些实例和没怎么常用的可以在链接里查看。

https://blog.csdn.net/raoifeng/article/details/83757391

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值