use of io.nuls.kernel.lite.core.interceptor.BeanMethodInterceptor in project nuls by nuls-io.
the class SpringLiteContext method checkBeanClass.
/**
* 检查一个类型,如果这个类型上被注释了我们关心的注解,如:Service/Component/Interceptor,就对这个对象进行加载,并放入bean管理器中
* Check a type, if this is commented on the type annotation, we care about, such as: (Service/Component/Interceptor), is to load the object, and in the bean manager
*
* @param clazz class type
*/
private static void checkBeanClass(Class clazz) {
Annotation[] anns = clazz.getDeclaredAnnotations();
if (anns == null || anns.length == 0) {
return;
}
Annotation ann = getFromArray(anns, Service.class);
String beanName = null;
boolean aopProxy = false;
if (null == ann) {
ann = getFromArray(anns, Component.class);
if (null != ann) {
beanName = ((Component) ann).value();
}
} else {
beanName = ((Service) ann).value();
}
if (ann != null) {
if (beanName == null || beanName.trim().length() == 0) {
beanName = getBeanName(clazz);
}
try {
loadBean(beanName, clazz, aopProxy);
} catch (NulsException e) {
Log.error(e);
return;
}
}
Annotation interceptorAnn = getFromArray(anns, Interceptor.class);
if (null != interceptorAnn) {
BeanMethodInterceptor interceptor = null;
try {
Constructor constructor = clazz.getDeclaredConstructor();
interceptor = (BeanMethodInterceptor) constructor.newInstance();
} catch (Exception e) {
Log.error(e);
return;
}
BeanMethodInterceptorManager.addBeanMethodInterceptor(((Interceptor) interceptorAnn).value(), interceptor);
}
}
Aggregations