【原创】Spring-AOP代理类继承接口..

本文介绍了一个使用Java实现的代理模式案例。通过定义一个计算机购买接口(PcInterf),并创建Computer类实现该接口,再利用Java反射机制生成代理对象,实现在调用Computer对象方法前后增加额外操作的功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Computer.java 

package org.rockie;

public class Computer implements PcInterf{
 private String pcName="rockie007";
 private int pcPrice=5000;

 public String getPcName() {
  return pcName;
 }
 public void setPcName(String pcName) {
  this.pcName = pcName;
 }
 public int getPcPrice() {
  return pcPrice;
 }
 public void setPcPrice(int pcPrice) {
  this.pcPrice = pcPrice;
 }
 public void buy() {
  // TODO 自动生成方法存根
  System.out.println("获得一部"+pcName+"电脑..");
  
 }

}


 

PcInterf.java

package org.rockie;

public interface PcInterf {
 public void buy();

}


 

 Daili.java

package org.rockie;

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

public class Daili implements InvocationHandler{
 private Object delegate;
 public Object bind(Object delegate)
 {
  this.delegate=delegate;
  //代理对象的类,代理对象的接口..
  return Proxy.newProxyInstance(delegate.getClass().getClassLoader(), delegate.getClass().getInterfaces(), this);
 }

 public Object invoke(Object arg0, Method arg1, Object[] arg2) throws Throwable {
  // TODO 自动生成方法存根
  System.out.println("送鼠标一个..");
  Object result=arg1.invoke(delegate, arg2);
  return result;
 }

}

 


 


TestMain.java

package org.rockie;

public class TestMain {

 /**
  * @param args
  */
 public static void main(String[] args) {
  // TODO 自动生成方法存根
  Daili daili=new Daili();  
  PcInterf pc=(PcInterf)daili.bind(new Computer());
  pc.buy();

 }

}

 

ps:此帖绝对是本人原创...

转载时..
请注明:
转至http://blog.youkuaiyun.com/Kipen/   作者:rockie(石の頭丶)
请尊重他人的劳动果实..
谢谢..

 --by rockie(石の頭丶)
rg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'appService' defined in file [E:\编辑\apache-tomcat-9.0.37\apache-tomcat-9.0.37\webapps\KuCun2\WEB-INF\classes\com\kucun\Service\AppService.class]: Initialization of bean failed; nested exception is java.lang.IllegalArgumentException: Not a JpaRepository implementation at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897) ~[spring-beans-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879) ~[spring-context-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551) ~[spring-context-5.2.15.RELEASE.jar:5.2.15.RELEASE] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:143) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:755) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:747) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:402) ~[spring-boot-2.3.12.RELEASE.jar:2.3.12.RELEASE] at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) ~[spring-boot-2.3.12.R
最新发布
06-10
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值