自定义注解 本是古典 何须时尚 2022-07-15 18:50 210阅读 0赞 package cn.stu; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyController { String controller() default ""; } package cn.stu; import java.lang.annotation.Documented; import java.lang.annotation.ElementType; import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; import java.lang.annotation.Target; @Target(ElementType.FIELD) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyService { String service() default ""; } package cn.stu; public class MyActivity { @MyController(controller="login") private String controller; @MyService(service="loginService") private String service; public String getController() { return controller; } public void setController(String controller) { this.controller = controller; } public String getService() { return service; } public void setService(String service) { this.service = service; } } package cn.stu; import java.lang.reflect.Field; /*** * * 猜测,Spring在初始化的时候, 有一个扫描的配置, 在这里就获取某一个包下面的所有的类。 然后通过反射就对其中的类进行数据的填充。 * 进行初始化扫描下面的类。 (个人猜测) * * * 注解形式主要的也就是通过反射机制来进行数据的填充,在代码运行的时候执行。 如此理解Spring的注解的形式就好理解了。所有的注解也就 * 是一个差不多的普通类而已,只是通过反射来进行初始化和数据的填充。 * * */ public class Main { public static void main(String[] args) { String[] str = Main.getFiledInfo(MyActivity.class); for (String string : str) { System.out.println(string); } } // 反射解析注解数据 public static String[] getFiledInfo(Class<?> clazz){ String[] strData = new String[2]; Field[] fileds = clazz.getDeclaredFields(); // 反射获取所有属性,这里只是定义来属性注解 for (Field field : fileds) { if(field.isAnnotationPresent(MyController.class)){ MyController controller = (MyController)field.getAnnotation(MyController.class); String loginController = controller.controller(); strData[0] = "登录请求地址->"+loginController; }else if(field.isAnnotationPresent(MyService.class)){ MyService service = (MyService)field.getAnnotation(MyService.class); String loginService = service.service(); strData[1] = "登录业务处理->"+loginService; } } return strData; } } 打印如下: 登录请求地址->login 登录业务处理->loginService
相关 自定义注解 自定义注解关键词 @interface。具体实现可参考下面代码。 @Target({ ElementType.FIELD}) @Retention(Reten 本是古典 何须时尚/ 2022年12月05日 09:59/ 0 赞/ 229 阅读
相关 自定义注解 自定义注解 一、注解是什么? 二、使用步骤 1.使用关键字@interface @Target @Retention详解 一、注解是什么 ﹏ヽ暗。殇╰゛Y/ 2022年12月01日 11:57/ 0 赞/ 7 阅读
相关 自定义注解 1、简单介绍注解 注解(Annotation),也叫元数据。一种代码级别的说明。它是JDK1.5及以后版本引入的一个特性,与类、接口、枚举是在同一个层次。它可以声明 旧城等待,/ 2022年10月09日 03:11/ 0 赞/ 226 阅读
相关 自定义注解 什么是注解? 从JDK5开始,Java增加对元数据的支持,也就是注解,注解与注释是有一定区别的,可以把注解理解为代码里的特殊标记,这些标记可以在编译,类加 素颜马尾好姑娘i/ 2022年09月02日 04:18/ 0 赞/ 243 阅读
相关 自定义注解 首先定义注解类: import java.lang.annotation.; @Documented @Target(ElementType.METHOD) @Ret 一时失言乱红尘/ 2022年07月20日 15:18/ 0 赞/ 283 阅读
相关 自定义注解 package cn.stu; import java.lang.annotation.Documented; import java.lan 本是古典 何须时尚/ 2022年07月15日 18:50/ 0 赞/ 211 阅读
相关 自定义注解 自定义注解 @Retention(RetentionPolicy.RUNTIME) // 元注解:注解的注解。此注解表示使注解保留到运行时。 @Target( ゝ一世哀愁。/ 2022年05月31日 12:24/ 0 赞/ 327 阅读
相关 自定义注解 import java.lang.annotation.Retention; import java.lang.annotation.RetentionPolicy; 谁践踏了优雅/ 2022年03月30日 03:30/ 0 赞/ 327 阅读
相关 自定义注解 转载:[https://my.oschina.net/itblog/blog/1525665][https_my.oschina.net_itblog_blog_1525665 红太狼/ 2022年03月19日 08:51/ 0 赞/ 307 阅读
相关 自定义注解 注解是一种元数据形式,即注解是属于java的一种数据类型,和类、接口、数组、枚举类似。注解用来修饰,类、方法、变量、参数、包。注解不会对所修饰的代码产生直接的 痛定思痛。/ 2021年12月21日 11:51/ 0 赞/ 358 阅读
还没有评论,来说两句吧...