在上一篇文章中,我们讲述了利用Java的反射机制中实现Spring中的IOC,在本文中,我们将更进一步,讲述用Java的反射和动态代理机制来实现Spring的AOP. 一.AOP概述 AOP(Aspect Oriented Programing),即面向切面编程,它主要用于日志记录.性能统计.安全控制.事务处理.异常处理等方面.它的主要意图就要将日志记录,性能统计,安全控制.事务处理.异常处理等等代码从业务逻辑代码中清楚地划分出来.通过对这些行为的分离,我们希望可以将它们独立地配置到业务逻辑方法…
kettle job中的JavaScript如何获取同一个job中SQL步骤的执行语句并让执行语句记录在日志中呢?首先写日志需要用到job中JavaScript写日志的方法,其次是利用java反射机制获取执行的sql. 如: var sqlObj = getJobStep("SQL"); var sql = sqlObj.environmentSubstitute(sqlObj.getSQL()); var logWriter = org.pentaho.di.core.logging…
实现类: package com.ljy; import java.lang.reflect.Constructor; import java.lang.reflect.InvocationTargetException; /** * * @ClassName: ConstructorTest * @Description: 通过反射技术动态创建对象(有参.无参构造) * @author ljy * @date 2019年9月12日 上午11:50:48 * */ public class Co…
public static Object getInstance(Class c){ Object obj = null; try { obj = c.newInstance(); } catch (InstantiationException | IllegalAccessException e) { e.printStackTrace(); } return obj; } 说明:传递给我的参数是什么类的运行时类,那么返回的就是哪个类的实例. 这几周一直在看之前公司做的老项目,封装的挺好的,觉…
闲来没事,想了一个应用的例子:用java如何把数据库的数据根据我们指定的某几列,如第2列,第4列,第6列导出来到Excel里? 写代码也是为了应用的,写好的代码更重要的是在于思考.我自己思考了这个示例. 问题:指定列把数据库数据根据列导出到Excel里. 那么要处理这个问题,它其实是很简单的,但是再简单的问题,也需要去拆分,思考,所谓,麻雀虽小,五脏俱全嘛. 拆分:1. Load DB data; 2. 把数据和指定列映射起来:3. 导出数据到Excel. 本文把第一步操作省略了,第一步操作就是…
什么是反射 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的以及动态调用对象的方法的功能称为Java的反射机制. 什么是动态呢?动态是相对于静态而言的,主要区别就是二者创建对象的时间不同,静态是在编译时创建对象,动态是在运行期创建对象. 其实在显示业务逻辑中能用到反射的地方很少,一般在工具类中还有aop中使用,但是在基础框架的设计中应用比较多. 反射的优缺点 优点:运行期进行类型的判断,动态加载,提高了…
一.反射进阶之动态设置类的私有域 "封装"是Java的三大特性之一,为了能更好保证其封装性,我们往往需要将域设置成私有的, 然后通过提供相对应的set和get方法来操作这个域.但是我们仍然可以用java的反射机制来 修改类的私有域,由于修改类的私有域会破坏Java"封装"的特性,故请慎重操作. 主要技术:     Field类提供有关类或接口的单个字段的信息,以及对它的动态访问权限.     访问的字段可能是一个类(静态)字段或实例字段.             常…
IOC(Inverse of Control) 可翻译为“控制反转”,但大多数人都习惯将它称为“依赖注入”.在Spring中,通过IOC可以将实现类.参数信息等配置在其对应的配置文件中,那么当 需要更改实现类或参数信息时,只需要修改配置文件即可,这种方法在上例的基础上更进一步的降低了类与类之间的耦合.我们还可以对某对象所需要的其它对象进 行注入,这种注入都是在配置文件中做的,Spring的IOC的实现原理利用的就是Java的反射机制, Spring还充当了工厂的角色,我们不需要自己建立工厂类.S…
引言   为了方便记忆java的反射机制,在这里仔细的总结了一下.主要是怕以后忘记了,这样也方便回忆.因为最近利用空余时间深入的了解spring和Mybatis框架,   像spring中核心模块IOC底层实现的原理就是反射机制,mybatis也是利用java的反射机制来获取和设置对象的值的.由此看来java反射机制还是很强大的,其实也蛮有趣的.   Java语言允许通过程序化的方式间接对Class的对象实例操作,Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象…
Java之反射 - 用法及原理 定义 Java反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意方法和属性:这种动态获取信息以及动态调用对象方法的功能称为Java语言的反射机制. 用途 在日常的第三方应用开发过程中,经常会遇到某个类的某个成员变量.方法或是属性是私有的或是只对系统应用开放,这时候就可以利用Java的反射机制通过反射来获取所需的私有成员或是方法.当然,也不是所有的都适合反射,有时可能会碰到一些情况无法正确的反射,是因为经过…