当前位置: 首页 > news >正文

北京建设网站有哪些公司徐州新站百度快照优化

北京建设网站有哪些公司,徐州新站百度快照优化,安徽龙山建设有限公司网站,中国互联网站建设中心文章目录 〇、使用自定义注解的好处和工作原理一、如何使用自定义注解1.自定义一个注解2.在类、属性、方法上进行使用3.元注解 二、使用拦截器的好处和工作原理三、如何使用拦截器参考 本博客源码: 〇、使用自定义注解的好处和工作原理 自定义注解是Java语言提供的…

文章目录

  • 〇、使用自定义注解的好处和工作原理
  • 一、如何使用自定义注解
    • 1.自定义一个注解
    • 2.在类、属性、方法上进行使用
    • 3.元注解
  • 二、使用拦截器的好处和工作原理
  • 三、如何使用拦截器
  • 参考

本博客源码:

〇、使用自定义注解的好处和工作原理

自定义注解是Java语言提供的一种元编程(metaprogramming)机制,它允许开发者在代码中添加自己的元数据(metadata),以便在程序运行时进行解析和处理。 通过注解我们可以免去繁琐的配置过程,简化开发流程,可以解决很多实际开发过程中的痛点、难点,让我们可以提出更多更合理的非侵入式解决方案。 以下是一些使用自定义注解的原因和好处:

  1. 提供额外的元数据:自定义注解可以通过在源代码中添加额外的元数据,用于描述类、方法、字段等程序元素的特性和属性。这些元数据可以被程序在运行时获取,以改变程序的行为或提供其他功能。

  2. 简化代码和提高可读性:通过自定义注解,可以将一些复杂的逻辑或配置信息从代码中抽离出来,以注解的形式进行声明和使用。这样可以减少代码的重复性,使代码更加简洁和易读。

  3. 可以通过注解处理器实现代码自动化:Java提供了注解处理器(Annotation Processor)的API,可以用于在编译时处理注解。通过编写自定义的注解处理器,可以根据注解生成额外的代码或进行其他代码转换和生成操作,实现代码自动生成、自动化配置等功能。

  4. 支持框架和库的扩展性:很多开源框架和库都提供了一些特定的自定义注解,用于扩展和定制它们的行为。通过使用框架或库提供的自定义注解,可以更灵活地利用其功能和特性,以满足具体的需求。

  5. 实现代码级别的验证和约束:自定义注解可以用于实现一些代码级别的验证和约束。通过在目标元素上添加注解,可以为该元素定义一些验证规则,如参数非空检查、权限校验等。在编译器或运行时,可以根据注解对代码进行静态或动态的验证,以提高代码的健壮性和安全性。

总的来说,自定义注解是一种扩展Java语言的机制, 能够为程序添加额外的元数据、简化代码、实现自动化和增强可读性等优势。它在许多框架、库和工具中得到了广泛的应用,以提供更灵活和强大的功能。

自定义注解的工作原理大致如下:

  1. 定义注解类,指定注解的保留策略和应用目标等元数据,并定义属性。
  2. 在代码中使用注解修饰目标元素(类、方法、字段等)。
  3. 通过反射机制,获取目标元素上的注解信息。
  4. 根据注解的属性值进行相应的处理逻辑。

一、如何使用自定义注解

1.自定义一个注解

import java.lang.annotation.*;@Documented
@Target({ElementType.TYPE,ElementType.METHOD,ElementType.FIELD})
@Inherited
@Retention(RetentionPolicy.RUNTIME)
public @interface NameAnnotation {String name() default "未识别的名称";
}

2.在类、属性、方法上进行使用

import tracy.annotation.NameAnnotation;import java.lang.annotation.Annotation;
import java.lang.reflect.Field;
import java.lang.reflect.Method;@NameAnnotation(name = "学生类")
@Data
@AllArgsConstructor
public class Student {@NameAnnotation(name = "姓名属性")private String name;@NameAnnotation(name = "年龄属性")private Integer age;@NameAnnotation(name = "性别属性")private String gender;@NameAnnotation(name = "打印方法")public void print(boolean detailed){if(detailed){System.out.println(this.toString());}else{System.out.println("学生"+this.name);}}public static void main(String[] args) {//创建了一个Student对象并打印相关信息Student student=new Student("tracy",18,"female");student.print(true);//打印该对象所属类的相关信息System.out.println("类信息:");System.out.println((student.getClass().getAnnotation(NameAnnotation.class)).name());System.out.println("方法信息:");for(Method method:student.getClass().getDeclaredMethods()){for (Annotation a:method.getAnnotations()){System.out.println(((NameAnnotation)a).name());}}System.out.println("属性信息:");for(Field field:student.getClass().getDeclaredFields()){for (Annotation a:field.getAnnotations()){System.out.println(((NameAnnotation)a).name());}}}
}
  • 执行结果:

在这里插入图片描述

3.元注解

在 Spring Boot 中,可以使用一些自定义注解的元注解来定义和扩展自定义注解。以下是一些常见的元注解:

  1. @Retention:该元注解用于指定注解的保留策略,决定注解的生命周期。常见的参数有:

    • RetentionPolicy.SOURCE:注解仅保留在源代码中,不会对编译后的字节码文件和运行时产生影响。
    • RetentionPolicy.CLASS:注解会保留在编译后的字节码文件中,但不会被加载到 JVM 中运行。
    • RetentionPolicy.RUNTIME:注解会保留在编译后的字节码文件中,并且可以被加载到 JVM 中运行时使用。
  2. @Target:该元注解用于指定注解可以应用的目标元素类型,如类、方法、字段等。常见的参数有:

    • ElementType.TYPE:类、接口或枚举。
    • ElementType.METHOD:方法。
    • ElementType.FIELD:字段。
  3. @Inherited:该元注解用于指定注解是否可以被继承。如果一个类使用了被 @Inherited 注解修饰的注解,则其子类也会继承该注解。

  4. @Documented:该元注解用于指定注解是否应该被 javadoc 文档化。没有 @Documented 元注解修饰的注解在生成 javadoc 文档时不会显示在文档中。

  5. @Repeatable:该元注解用于指定注解是否可重复应用于同一元素上。需要在自定义的重复注解上添加 @Repeatable 注解,并指定一个容器注解来存放重复的注解。

二、使用拦截器的好处和工作原理

三、如何使用拦截器

参考

https://blog.csdn.net/qq_54936371/article/details/122576023
https://zhuanlan.zhihu.com/p/468882010

http://www.mmbaike.com/news/45968.html

相关文章:

  • 充值网站架设怎样推广产品
  • 换物网站为什么做不起来专业做网络推广的公司
  • 宫廷计有哪些网站开发的数字化营销
  • 淘宝网站建设策划报告揭阳seo推广公司
  • 做二手网站有哪些问题有站点网络营销平台
  • 罗湖区住房和建设网站网站优化推广方案
  • 一个空间多个网站南昌seo代理商
  • 平湖网站制作最新的域名网站
  • 沈阳建站网页模板线下推广有哪几种渠道
  • 多语言网站建设应注意哪些事项品牌推广方案包括哪些
  • 旅游高端网站建设免费外链生成器
  • 网站seo优化全程记录思维导图淘宝网店代运营正规公司
  • asp做网站缺点重庆百度推广
  • 谷歌入口班级优化大师app
  • 移动端网站开发多少钱常见的网站推广方式
  • 广西响应式网站建设湖南网站建设推荐
  • 佛山seo整站优化软文推广500字
  • 提供网站建设设计外包关键词优化seo优化排名
  • 自己做网站运营深圳seo优化电话
  • 最专业 汽车网站建设win10最强性能优化设置
  • 如何上wordpress谷歌seo排名优化服务
  • 北京营销型网站案例站长工具seo优化系统
  • 绍兴做外贸网站的公司中国去中心化搜索引擎
  • wordpress主题中的psd湖南正规seo优化报价
  • 有个可以做图片的网站seo搜索优化费用
  • 两学一做网站软文范例大全
  • 松原建设网站营销推广48个方法
  • 网站源码上传安装seo排名首页
  • 如何用服务器发布网站企业邮箱入口
  • 昆明微网站建设培训网络营销的机构