Java动态代理(Spring Aop原理)

简介:
Java代码   收藏代码
  1. import java.lang.reflect.InvocationHandler ;  
  2. import java.lang.reflect.Proxy ;  
  3. import java.lang.reflect.Method ;  
  4. interface Subject{  
  5.     public String say(String name,int age) ;    // 定义抽象方法say  
  6. }  
  7. class RealSubject implements Subject{   // 实现接口  
  8.     public String say(String name,int age){  
  9.         return "姓名:" + name + ",年龄:" + age ;  
  10.     }  
  11. };  
  12. class MyInvocationHandler implements InvocationHandler{  
  13.     private Object obj ;  
  14.     public Object bind(Object obj){  
  15.         this.obj = obj ;    // 真实主题类  
  16.         return Proxy.newProxyInstance(obj.getClass().getClassLoader(),obj.getClass().getInterfaces(),this) ;  
  17.     }  
  18.     public Object invoke(Object proxy,Method method,Object[] args) throws Throwable{  
  19.         Object temp = method.invoke(this.obj,args) ;    // 调用方法  
  20.         return temp ;  
  21.     }  
  22. };  
  23. public class DynaProxyDemo{  
  24.     public static void main(String args[]){  
  25.         Subject sub = (Subject)new MyInvocationHandler().bind(new RealSubject()) ;  
  26.         String info = sub.say("李兴华",30) ;  
  27.         System.out.println(info) ;  
  28.     }  
  29. };  

 

相关文章
|
14天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
44 2
|
19天前
|
XML Java 数据安全/隐私保护
Spring Aop该如何使用
本文介绍了AOP(面向切面编程)的基本概念和术语,并通过具体业务场景演示了如何在Spring框架中使用Spring AOP。文章详细解释了切面、连接点、通知、切点等关键术语,并提供了完整的示例代码,帮助读者轻松理解和应用Spring AOP。
Spring Aop该如何使用
|
26天前
|
人工智能 前端开发 Java
基于开源框架Spring AI Alibaba快速构建Java应用
本文旨在帮助开发者快速掌握并应用 Spring AI Alibaba,提升基于 Java 的大模型应用开发效率和安全性。
基于开源框架Spring AI Alibaba快速构建Java应用
|
24天前
|
Java Spring
[Spring]aop的配置与使用
本文介绍了AOP(面向切面编程)的基本概念和核心思想。AOP是Spring框架的核心功能之一,通过动态代理在不修改原代码的情况下注入新功能。文章详细解释了连接点、切入点、通知、切面等关键概念,并列举了前置通知、后置通知、最终通知、异常通知和环绕通知五种通知类型。
30 1
|
2月前
|
Java 数据库连接 开发者
Spring 框架:Java 开发者的春天
【10月更文挑战第27天】Spring 框架由 Rod Johnson 在 2002 年创建,旨在解决 Java 企业级开发中的复杂性问题。它通过控制反转(IOC)和面向切面的编程(AOP)等核心机制,提供了轻量级的容器和丰富的功能,支持 Web 开发、数据访问等领域,显著提高了开发效率和应用的可维护性。Spring 拥有强大的社区支持和丰富的生态系统,是 Java 开发不可或缺的工具。
|
2月前
|
JSON Java Maven
实现Java Spring Boot FCM推送教程
本指南介绍了如何在Spring Boot项目中集成Firebase云消息服务(FCM),包括创建项目、添加依赖、配置服务账户密钥、编写推送服务类以及发送消息等步骤,帮助开发者快速实现推送通知功能。
74 2
|
20天前
|
安全 Java 测试技术
Java开发必读,谈谈对Spring IOC与AOP的理解
Spring的IOC和AOP机制通过依赖注入和横切关注点的分离,大大提高了代码的模块化和可维护性。IOC使得对象的创建和管理变得灵活可控,降低了对象之间的耦合度;AOP则通过动态代理机制实现了横切关注点的集中管理,减少了重复代码。理解和掌握这两个核心概念,是高效使用Spring框架的关键。希望本文对你深入理解Spring的IOC和AOP有所帮助。
31 0
|
前端开发 Java 数据库
Java面试题 - Spring
Java面试题 - Spring
146 0
|
5月前
|
Java 应用服务中间件 开发者
Java面试题:解释Spring Boot的优势及其自动配置原理
Java面试题:解释Spring Boot的优势及其自动配置原理
122 0
|
Java 容器 Spring
【java常见的面试题】什么是Spring IOC 和DI ?
Java基础的面试题【SSM框架篇】
190 0