`
水木清华77
  • 浏览: 36894 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Spring动态调用

阅读更多

package com;

public interface IComponent {
public void  business1() ;
public void  business2() ;
public void  business3() ;
}
 package com;
public class Component implements IComponent{
	public void business1() {
		System.out.println("业务1");
	}

	public void business2() {
		System.out.println("业务2");
	}

	public void business3() {
		System.out.println("业务3");
	}
}

 package com;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

public class DynamicProxy implements InvocationHandler {
	private Object obj;
	//private DynamicProxy p;

	public Object bindl(Object obj) {
		this.obj = obj;
		System.out.println("我是bind*****");
	return  Proxy.newProxyInstance(obj.getClass().getClassLoader(), obj
				.getClass().getInterfaces(),this);// 用来动态装载invoke方法的
		// return new DynamicProxy() ;
		//创建代理类  实例化了一个代理类
	}

	// 动态调用的 不需要手的设置装载
	public Object invoke(Object proxy, Method method, Object[] args)
			throws Throwable {
		// TODO Auto-generated method stub
		// System.out.println(proxy.getClass());
		// System.out.println(method.getClass());
		Object result = null;
		try {
			valiateUser();
			// System.out.println(proxy.getClass());
			// System.out.println(args);
			// System.out.println(method.getClass());
			result = method.invoke(obj,args);// 调用方法 obj
			// System.out.println(result);
			System.out.println("************");
		} catch (Exception e) {
			e.printStackTrace();
		}
		return result;
	}

	public void valiateUser() {
		System.out.println("验证用户。。。。");
	}
}

 package com;

public class TestD  {
public static void main(String args[]){
	DynamicProxy proxy = new DynamicProxy();
	IComponent component=(IComponent) proxy.bindl(new Component());
	component.business1();//先调用它的invoke方法  再在他的invoke方法里面加载类   
	component.business2();
	component.business3();
	
	
}
}
 
分享到:
评论

相关推荐

    Spring动态加载bean后调用实现方法解析

    Spring动态加载bean后调用实现方法解析 在 Spring 框架中,动态加载 bean 是一个非常实用的功能,特别是在我们需要在不改变原有程序结构的基础上添加新的 bean 的时候。通过使用 Spring 的 ...

    spring远程调用简单实例

    Spring框架的一大特色就是其远程调用能力,这使得分布式系统的开发变得更加便捷。本实例将深入探讨Spring的远程调用功能,通过一个简单的例子来帮助理解其工作原理和实施步骤。 首先,我们要明确Spring远程调用...

    使用spring远程调用服务端接口实现WebService功能

    在Java EE平台上,Spring框架提供了一种强大的方式来实现远程服务调用,特别是通过其HttpInvokerServiceExporter组件来实现基于HTTP的WebService功能。这个技术允许客户端和服务端通过HTTP协议进行通信,实现远程...

    Spring远程调用使用http方式

    首先,我们需要理解什么是Spring远程调用。Spring Remote提供了一种机制,使得应用程序能够跨越网络边界调用其他服务的方法,仿佛它们是在同一进程中执行一样。HTTP远程调用是Spring Remote的一种实现方式,通过HTTP...

    spring与java反射结合动态定义类及调用函数

    spring与java反射结合动态定义类及调用函数,实现类的动态定义和函数的动态调用。 为有动态调用的web应用提供一点点借鉴,相互学习。

    Spring JdbcTemplate调用Oracle存储过程实现CRUD

    使用 Spring JdbcTemplate 调用 Oracle 存储过程实现 CRUD 在本文中,我们将讨论如何使用 Spring JdbcTemplate 调用 Oracle 存储过程来实现 CRUD(Create、Read、Update、Delete)操作。我们将首先编写 Oracle 存储...

    springboot mybatis 动态调用oracle存储过程,通过存储过程名称,就能动态调用存储过程、java动态调用or

    能不能写个动态的业务,只输入存储过程名称,自动获取存储过程参数,并且参数的数据从前台传递过来,这个就通用了。只写一个通用方法,就可以调用所有的存储过程。只根据输入不同的存储过程名称、参数内容,自动调用...

    Spring动态加载配置文件

    在Spring框架中,动态加载配置文件是一项重要的功能,它使得开发者在开发过程中无需重启应用就能实时更新配置,极大地提高了开发效率。热部署方案是这一功能的具体应用,它允许我们在不中断服务的情况下,对应用程序...

    spring远程调用

    在分布式系统中,远程调用是一个常见需求,Spring为此提供了一种轻量级的解决方案——HttpInvoker。本文将详细讲解如何利用Spring的HttpInvoker进行远程方法调用。 首先,我们需要理解什么是Spring HttpInvoker。...

    普通javaweb项目调用springCloud接口(超级实用,很详细)

    ### 普通JavaWeb项目调用Spring Cloud接口详解 #### 前言 在现代软件开发中,微服务架构已成为构建大型复杂系统的主流选择之一。Spring Boot 和 Spring Cloud 作为构建微服务的重要工具,其易用性和强大的功能受到...

    Springcloud项目调用dubbo项目.zip

    实现Springcloud向dubbo项目的接口调用。 FeignToDubbo-starter模块负责利用Feign将底层的Http协议转化为dubbo协议,供SpringCloud项目使用。引入FeignToDubbo-starter后会引入dubbo的依赖,使用注解DubboRefence...

    spring+动态代理

    在Java编程中,动态代理是一种强大的工具,它允许我们在运行时创建对象的代理,以便在调用实际方法之前或之后执行额外的操作。Spring框架提供了一种便捷的方式来实现动态代理,这使得我们可以在不修改原有代码的情况...

    spring异步调用的例子

    在Spring框架中,异步调用是一种提升应用性能和响应速度的重要技术。它允许你在不阻塞当前线程的情况下执行耗时的操作,从而提高系统的并发处理能力。本示例将探讨如何在Spring中实现异步调用,并通过具体的例子帮助...

    springboot动态调用webservice接口

    最近项目中遇到需要去掉老系统的webservice服务中的insert方法,找了很久,发现这样最简单,实测有效!!!

    Spring的定时调用

    标题“Spring的定时调用”涉及的是Spring框架中的任务调度功能,这在企业级应用开发中非常常见,用于实现周期性的任务执行,如数据同步、日志清理等。Spring提供了两种主要的定时任务解决方案:`Quartz`和`Spring ...

    Spring Boot中Controller间的调用

    本文将探讨两种在Spring Boot中实现Controller间调用的方法及其优缺点。 首先,我们可以使用`RestTemplate`来模拟远程调用。这是一种常见的HTTP客户端工具,允许Controller A通过HTTP请求访问Controller B。以下是...

    spring动态代理

    Spring 动态代理是 Spring 框架中的一个重要特性,它允许我们在运行时自动生成代理对象,以便在方法调用前后执行额外的操作,比如事务管理、AOP(面向切面编程)等。动态代理主要涉及两个核心接口:`java.lang....

    Spring集成Cxf调用WebServices

    本篇将深入探讨如何将Spring与CXF整合,以实现高效地调用Web Services。 1. **Spring框架**:Spring以其依赖注入(Dependency Injection, DI)和面向切面编程(Aspect-Oriented Programming, AOP)为核心,提供了一...

    SpringCloud微服务注册调用Demo

    本示例"SpringCloud微服务注册调用Demo"是针对初学者的一个入门教程,旨在帮助开发者快速理解并实践SpringCloud的核心功能。 首先,我们来详细了解一下SpringCloud的核心组件: 1. **Eureka**:它是SpringCloud的...

Global site tag (gtag.js) - Google Analytics