把打包后的jar文件与spring注解依赖jar包放在同一个JVM下运行(就是运行时能在classpath找到那些注解的相关类)应该没有问题的!还有就是要保证编译和运行的jdk版本相同
很多朋友都想知道java怎么获取注解的值?下面就一起来了解一下吧~
1、定义一个注解,用于给全局变量field字段赋值
package comhahastudyannotationvalue; import javalangannotationDocumented; import javalangannotationElementType; import javalangannotationRetention; import javalangannotationRetentionPolicy; import javalangannotationTarget; / description: 定义一个注解,用于给 全局变量 field 字段 赋值,并使用反射取值。
特别提醒: @Rentention(RetentionPolicyRUNTIME) 时,注解才会被jvm加载,才能使用反射获取。 @version v10 @author w @date 2018年8月1日下午2:37:40 / @Documented @Retention(RetentionPolicyRUNTIME) @Target(value=ElementTypeFIELD) public @interface Fields { int sort() default 0 ; String value() ; }
2、创建一个普通的类,使用 @ConsAnnotation、@Fields 注解
package comhahastudyannotationvalue; / description: 创建一个普通的类,使用 @ConsAnnotation、@Fields 注解。 @version v10 @author w @date 2018年8月1日下午2:50:23 / @ConsAnnotation(request = { "hello","world","annotation!" }) public class User { @Fields("中华人民共和国") private String userName; public String getUserName() { return userName; } public void setUserName(String userName) { thisuserName = userName; } }
3、针对 comhahastudyannotationvalueUser 类使用注解的测试
package comhahastudyannotationvalue; import javalangreflectField; import javautilArrays; / description: 针对 comhahastudyannotationvalueUser 类使用注解的测试 @version v10 @author w @date 2018年8月1日下午2:37:13 / public class ValueTest { public static void main(String[] args) throws Exception { User user = new User(); // 1、 获取 User类上的注解 @ConsAnnotation ConsAnnotation anno = usergetClass()getAnnotation(ConsAnnotationclass); String[] arr = annorequest(); Systemoutprintln(ArraystoString(arr)); // [hello, world, annotation!] // 2、 获取User类中 private String userName; 变量上的注解 @Field Field f = usergetClass()getDeclaredField("userName"); Fields anno2 = fgetAnnotation(Fieldsclass); usersetUserName(anno2value()); Systemoutprintln(usergetUserName()); // 中华人民共和国 } }
//每个注解就是一个类
@注解接口类(接口属性=值)
//创建一个自定义注解
@Retention(RetentionPolicyRUNTIME) //运行时获得
@Target(ElementTypeMETHOD) //针对方法的注解
public @interface 自注标{
int 属性1();
}
//注解加在自己的普通类上
class A{
@自注标(属性1=123)
public void hello(){
}
}
//在自己框架 *** 作下游开发者的代码时,通过反射得到该注解的值123
自注标 a=AgetClass()getMethod("hello")getAnnotation(自注标class);
int i=a属性1();//就能获得用户注解值。进行相应的动作
我没看过代码。但是要实现这个也不难:
通过反射知道了对象一共有哪些注解,装在一个 Map 中,
然后通过 Map 反过来,再通过注解找对象。
以上就是关于spring怎么获取在jar包中自定义注解的实体类上的注解全部的内容,包括:spring怎么获取在jar包中自定义注解的实体类上的注解、java获取注解的值、java注解是怎么实现的等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)