/** * SqlReporter. */ public class SqlReporter implements InvocationHandler { private Connection conn; private static boolean loggerOn = false; private static final Logger log = Logger.getLogger(SqlReporter.class); SqlReporter(Connection conn) { this.conn = conn; } public static void setLogger(boolean on) { SqlReporter.loggerOn = on; } @SuppressWarnings("rawtypes") Connection getConnection() { Class clazz = conn.getClass(); return (Connection)Proxy.newProxyInstance(clazz.getClassLoader(), new Class[]{Connection.class}, this); } public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { try { if (method.getName().equals("prepareStatement")) { String info = "Sql: " + args[0]; if (loggerOn) log.info(info); else System.out.println(info); } return method.invoke(conn, args); } catch (InvocationTargetException e) { throw e.getTargetException(); } } }
最近看jfinal源码,熟悉框架构造的时候,发现的一个学习点。
代理对象和真实业务对象。
直接代码:
相关推荐
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 19. Stream API的概述.avi
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 20. Stream的实例化.avi
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 16. 方法引用的使用情况
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 17. 方法引用的使用情况
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 23. Stream的中间操作:
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 26. Stream的终止操作:
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 25. Stream的终止操作:
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 21. Stream的中间操作:
计算机后端-Java-Java核心基础-第30章 动态代理与Java8新特性 18. 构造器引用与数组引用
计算机后端-Java-Java核心基础-第15章 面向对象07 18. 接口应用:代理模式.avi
根据提供的信息,“Java核心技术-基础知识(第8版)”这本书主要关注于Java编程语言的基础知识,适合初学者以及希望深入理解Java核心概念和技术的开发者。尽管给出的部分内容仅是一串数字,无法直接从中提取具体的知识...
《JAVA核心技术--高级特征(第八版)--第二部分》是一本深度探讨Java编程语言高级特性的经典著作。本书主要聚焦在Java编程的高级层面,旨在帮助开发者掌握更高效、更复杂的技术,提升编程技能和解决问题的能力。以下是...
12. **反射机制**:反射允许在运行时动态地获取类的信息并操作类的对象,是Java中强大的工具,常用于插件系统、动态代理等场景。 13. **枚举类型**:Java 5引入了枚举,用于定义一组固定值的类型,增强了代码的...
11. **反射**:反射机制允许在运行时动态地获取类的信息并创建或操作对象,是Java的高级特性,常用于插件系统、动态代理等场景。 12. **枚举**:Java 5引入枚举类型,为常量提供了一种更安全的表示方式,可以防止...
《2009BJava核心技术-高级特性(第8版).part03.rar》这个压缩文件,虽然只是部分章节,但我们可以从中推测出这是一部关于Java编程语言的高级特性的技术书籍,第8版可能意味着这是一个经过多次更新、完善的知识体系。...
《2009BJava核心技术-高级特性(第8版).part01.rar》这个压缩文件,显然聚焦于Java编程语言的高级特性,这可能是针对Java开发者的一份深入学习资料,特别是那些寻求提升自己技术水平的专业人士。Java作为一款广泛应用...
Java基础教程:动态代理与Java 8新特性 - AOP与动态代理的举例 在Java编程中,动态代理和Java 8的新特性是提升代码效率和可维护性的重要工具。本教程将深入探讨这两个概念,并通过实例来阐述它们在实际应用中的作用...
《Java核心技术 卷1 基础知识》是Java编程领域的经典著作,由著名程序员教育家凯·S·霍斯特曼撰写。这本书的第10版在2016年9月出版,提供了全面而深入的Java编程基础知识,是学习Java语言的必备参考书之一。在第711...
通过学习和复习这些知识点,并结合"Java-Interview-超全集合github上评分最高的jiva面试题"中的题目进行实战演练,可以有效地提升Java开发者在面试中的竞争力,为成功获得理想职位打下坚实基础。在面试准备过程中,...
Java动态代理是Java编程中一个重要的高级特性,它允许我们在运行时创建代理对象来扩展或增强已有对象的功能。本教程将深入探讨Java动态代理的概念、实现机制以及在Java 8中的一些新应用。 动态代理主要涉及到Java....