把打包后的jar文件与spring注解依赖jar包放在同一个JVM下运行(就是运行时能在classpath找到那些注解的相关类)应该没有问题的!还有就是要保证编译和运行的jdk版本相同
jointpoint
通过JpointPoint对象可以获取到下面信息
# 返回目标对象,即被代理的对象
Object getTarget();
# 返回切入点的参数
Object[] getArgs();
# 返回切入点的Signature
Signature getSignature();
# 返回切入的类型,比如method-call,field-get等等,感觉不重要
String getKind();
切入点的方法名字及其参数
切入点方法标注的注解对象(通过该对象可以获取注解信息)
切入点目标对象(可以通过反射获取对象的类名,属性和方法名)
1 获取切入点所在目标对象
Object targetObj =joinPointgetTarget();
# 可以发挥反射的功能获取关于类的任何信息,例如获取类名如下
String className = joinPointgetTarget()getClass()getName();
2获取切入点方法的名字
getSignature());是获取到这样的信息 :修饰符+ 包名+组件名(类名) +方法名
这里我只需要方法名
String methodName = joinPointgetSignature()getName()
3 获取方法上的注解
方法1:xxxxxx是注解名字
Signature signature = joinPointgetSignature();
MethodSignature methodSignature = (MethodSignature) signature;
Method method = methodSignaturegetMethod();
if (method != null)
{
xxxxxx annoObj= methodgetAnnotation(xxxxxxclass);
}
return null;
1
2
3
4
5
6
7
8
9
方法2:上面我们已经知道了方法名和类的对象,通过反射可以获取类的内部任何信息。
// 切面所在类
Object target = joinPointgetTarget();
String methodName = joinPointgetSignature()getName();
Method method = null;
for (Method m : targetgetClass()getMethods()) {
if (mgetName()equals(methodName)) {
method = m;
// xxxxxx annoObj= methodgetAnnotation(xxxxxxclass);同上
break;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
4 获取方法的参数
这里返回的是切入点方法的参数列表
Object[] args = joinPointgetArgs();
————————————————
>
以上就是关于spring怎么获取在jar包中自定义注解的实体类上的注解全部的内容,包括:spring怎么获取在jar包中自定义注解的实体类上的注解、jointpoint和ProceedingJoinPoint区别、等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)