`

java 反射机制应用

阅读更多
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语言提供的一种强大功能,它允许运行中的Java程序对自身进行检查并且可以直接操作程序的内部属性。在Java中,反射机制的核心类是java.lang.Class,它代表了运行时的类信息。通过Class对象,我们...

    java面试题--反射机制

    通过本文,我们将深入探讨Java反射机制的核心概念、基本原理及其应用场景。 #### 二、Java反射机制简介 Java反射机制允许程序在运行时获取类的信息,这使得Java具有了一定程度上的动态性。具体来说,Java反射机制...

    java的反射机制的应用实例

    以下是对Java反射机制应用实例的详细解释: 1. **获取类信息**:使用`Class`类的`forName()`方法可以获取到任何类的`Class`对象,例如`Class&lt;?&gt; clazz = Class.forName("全限定类名");`。这样我们就能获取到该类的...

    Java反射机制 Java反射机制

    #### 三、Java反射机制的核心概念与应用 1. **核心概念** - **Class对象**:每个加载到Java虚拟机中的类都会对应一个Class对象,该对象包含了类的完整信息。 - **Method对象**:表示类中的方法,通过它可以获取...

    java的反射机制及其实际应用

    ### Java的反射机制及其实际应用 #### 一、引言 ...总之,Java反射机制是一项强大的工具,它能够在运行时动态地获取和操作类的信息。然而,应该谨慎使用反射,避免滥用造成不必要的性能损失或安全风险。

    java反射机制详解与应用.pdf

    Java 反射机制详解与应用 Java 反射机制是一种非常强大的动态相关机制,允许 Java 程序在运行时加载、探知、使用编译期间完全未知的类别。这种机制允许程序在运行时透过 Reflection APIs 取得任何一个已知名称的...

    JAVA反射机制及应用例子

    JAVA反射机制及应用例子.。。Reflection API

    Java反射机制总结

    ### Java反射机制总结 #### 反射的概念与起源 反射的概念最早由Smith于1982年提出,指的是程序能够访问、检测并修改其自身状态或行为的能力。这一概念的提出迅速引起了计算机科学领域的广泛关注,并在之后的研究中...

    Java反射机制的实现_Reflection

    Java反射机制是Java编程语言中的一个强大特性,它允许程序在运行时检查和操作类、接口、对象等的内部信息。通过Java反射机制,开发者可以在不知道具体类名的情况下创建对象,调用方法,访问和修改私有成员变量,以及...

    反射实例-JAVA反射机制

    ### 反射实例—JAVA反射机制 #### 一、反射概念及原理 ...总结而言,Java反射机制是构建灵活、可扩展应用程序的强大工具。然而,在使用反射时,开发者应当权衡其带来的好处和潜在的风险,确保合理有效地利用这一特性。

    java 反射机制详解

    Java 反射机制是 Java 语言中的一个重要特性,它允许程序在运行时动态地获取类的信息(如类名、属性、方法等)并调用对象的方法,甚至修改对象的状态。这一机制极大地增强了 Java 程序的灵活性和可扩展性,尤其是在...

    候捷谈Java反射机制

    Java反射机制是Java编程语言中的一个重要特性,它允许程序在运行时获取和操作任何已知名称的类的内部信息。这一机制使得Java具备了一定的动态性,虽然在传统的分类中Java被视为静态类型语言。通过反射,开发者可以在...

    java 反射机制例子

    ### Java反射机制详解 #### 一、反射的基本概念与历史背景 反射的概念最早由Smith在1982年提出,其核心思想是程序有能力访问、检测甚至...对于初学者而言,了解并掌握Java反射机制的基本原理和应用场景是非常有益的。

    Java反射机制经典案例

    Java反射机制是Java编程语言中的一个强大...通过以上介绍,我们了解了Java反射机制的基本概念、使用方法、应用场景以及需要注意的问题。在实际编程中,合理利用反射可以提高代码的灵活性,但同时也需注意其潜在的风险。

    Java反射机制Demo

    ### Java反射机制详解 #### 一、什么是Java反射机制? Java反射机制是在运行状态中,对于任意一个类,都...以上是关于Java反射机制的基本概念、用法和示例解析,希望能帮助你更好地理解和应用这一重要的Java特性。

    Java反射机制学习(二)

    这篇博文"Java反射机制学习(二)"可能深入探讨了如何利用反射进行动态类型处理、访问私有成员以及创建对象等核心概念。在这里,我们将详细讨论Java反射的基本用法及其在实际开发中的应用。 1. **什么是反射**: ...

Global site tag (gtag.js) - Google Analytics