public class BaseController {
/**
* 通过指定的bean处理业务,非核心流程,不能支持java 动态代理对象@transactional注解的类
* @param bean
* @throws Throwable
*/
@SuppressWarnings("unchecked")
protected void process(BeanBase bean) throws Throwable {
bean.setDatas(Util.converToBean(bean));
String processorName = bean.getNeedcontrolprocess();
if(processorName == null || processorName == ""){
return;
}
String[] beanAndMethod = processorName.split("\\.");
String beanName = beanAndMethod[0];
//Service层里的方法名
String methodName = "process";
if(beanAndMethod.length > 1){
methodName = beanAndMethod[1];
}
//spring 反射获得Service层的服务类beanName=taxFavInfo(@Service("taxFavInfo"))
Object processBean = ApplicationContextHepler
.getBeanByName(beanName);
if (processBean == null) {
throw new ServiceException("数据格式非法,没有找到相应的流程!");
}
bean.setDatas(Util.converToBean(bean));
//获得运行时Class实例
@SuppressWarnings("rawtypes")
Class clazz = processBean.getClass();
@SuppressWarnings("rawtypes")
Class cz[] = new Class[1];
cz[0] = BeanBase.class;
Method method = null;
try {
//Service层里的methodName(BeanBase bean)参数是BeanBase类型。
method = clazz.getDeclaredMethod(methodName,cz);
//反射机制调用方法 参数1:service里的全路径,参数2:methodName方法的参数
method.invoke(processBean,bean);
bean.setContent(Util.converToStr(bean));
} catch (NoSuchMethodException e) {
throw new ServiceException("没找到相应的处理方法!");
} catch (SecurityException e) {
throw new ServiceException("安全检查不通过!");
} catch (IllegalAccessException e) {
throw new ServiceException("非法访问!");
} catch (IllegalArgumentException e) {
throw new ServiceException("参数不合法!");
} catch (InvocationTargetException e) {
if(e.getTargetException() != null){
if(e.getTargetException() instanceof ServiceException){
throw (ServiceException)e.getTargetException();
}else{
throw e.getTargetException();
}
}else{
throw new ServiceException("调用失败"+e.getMessage());
}
}
}
/**
* 获取创建者工号字符串
* 方法说明:<br>
*
* @return
*/
protected String getCreateId() {
return "|createId:"+UserUtil.getCurrentUser().getEmpCode();
}
}
分享到:
相关推荐
JAVA反射机制应用 JAVA反射机制是JAVA语言中的一种动态机制,它能够在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意一个方法。这种动态获取的信息以及动态...
### Java反射机制应用详解 #### 一、Java反射机制简介 Java反射机制是Java语言提供的一种能在运行时分析类信息并动态操作对象的功能。通过反射,我们可以在程序运行期间获取类的信息(如类名、方法名等),创建...
Java反射机制是Java语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是java.lang.Class,它代表了运行时的类信息。通过Class对象,我们...
通过本文,我们将深入探讨Java反射机制的核心概念、基本原理及其应用场景。 #### 二、Java反射机制简介 Java反射机制允许程序在运行时获取类的信息,这使得Java具有了一定程度上的动态性。具体来说,Java反射机制...
以下是对Java反射机制应用实例的详细解释: 1. **获取类信息**:使用`Class`类的`forName()`方法可以获取到任何类的`Class`对象,例如`Class<?> clazz = Class.forName("全限定类名");`。这样我们就能获取到该类的...
#### 三、Java反射机制的核心概念与应用 1. **核心概念** - **Class对象**:每个加载到Java虚拟机中的类都会对应一个Class对象,该对象包含了类的完整信息。 - **Method对象**:表示类中的方法,通过它可以获取...
### Java的反射机制及其实际应用 #### 一、引言 ...总之,Java反射机制是一项强大的工具,它能够在运行时动态地获取和操作类的信息。然而,应该谨慎使用反射,避免滥用造成不必要的性能损失或安全风险。
Java 反射机制详解与应用 Java 反射机制是一种非常强大的动态相关机制,允许 Java 程序在运行时加载、探知、使用编译期间完全未知的类别。这种机制允许程序在运行时透过 Reflection APIs 取得任何一个已知名称的...
JAVA反射机制及应用例子.。。Reflection API
### Java反射机制总结 #### 反射的概念与起源 反射的概念最早由Smith于1982年提出,指的是程序能够访问、检测并修改其自身状态或行为的能力。这一概念的提出迅速引起了计算机科学领域的广泛关注,并在之后的研究中...
Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象等的内部信息。通过Java反射机制,开发者可以在不知道具体类名的情况下创建对象,调用方法,访问和修改私有成员变量,以及...
### 反射实例—JAVA反射机制 #### 一、反射概念及原理 ...总结而言,Java反射机制是构建灵活、可扩展应用程序的强大工具。然而,在使用反射时,开发者应当权衡其带来的好处和潜在的风险,确保合理有效地利用这一特性。
Java 反射机制是 Java 语言中的一个重要特性,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并调用对象的方法,甚至修改对象的状态。这一机制极大地增强了 Java 程序的灵活性和可扩展性,尤其是在...
Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时获取和操作任何已知名称的类的内部信息。这一机制使得Java具备了一定的动态性,虽然在传统的分类中Java被视为静态类型语言。通过反射,开发者可以在...
### Java反射机制详解 #### 一、反射的基本概念与历史背景 反射的概念最早由Smith在1982年提出,其核心思想是程序有能力访问、检测甚至...对于初学者而言,了解并掌握Java反射机制的基本原理和应用场景是非常有益的。
Java反射机制是Java编程语言中的一个强大...通过以上介绍,我们了解了Java反射机制的基本概念、使用方法、应用场景以及需要注意的问题。在实际编程中,合理利用反射可以提高代码的灵活性,但同时也需注意其潜在的风险。
### Java反射机制详解 #### 一、什么是Java反射机制? Java反射机制是在运行状态中,对于任意一个类,都...以上是关于Java反射机制的基本概念、用法和示例解析,希望能帮助你更好地理解和应用这一重要的Java特性。
这篇博文"Java反射机制学习(二)"可能深入探讨了如何利用反射进行动态类型处理、访问私有成员以及创建对象等核心概念。在这里,我们将详细讨论Java反射的基本用法及其在实际开发中的应用。 1. **什么是反射**: ...