Questions tagged «dynamic-proxy»


2
java.lang.reflect.Proxy的替代品,用于创建抽象类的代理(而不是接口)
根据文档: [ java.lang.reflect.]Proxy提供了用于创建动态代理类和实例的静态方法,它还是由这些方法创建的所有动态代理类的超类。 该newProxyMethod方法(负责生成动态代理)具有以下签名: public static Object newProxyInstance(ClassLoader loader, Class<?>[] interfaces, InvocationHandler h) throws IllegalArgumentException 不幸的是,这阻止了人们生成扩展特定抽象类的动态代理(而不是实现特定接口)。考虑到java.lang.reflect.Proxy“所有动态代理的超类”,这是有道理的,因此可以防止另一个类成为超类。 因此,是否有替代方法java.lang.reflect.Proxy可以生成从特定抽象类继承的动态代理,从而将对抽象方法的所有调用重定向到调用处理程序? 例如,假设我有一个抽象类Dog: public abstract class Dog { public void bark() { System.out.println("Woof!"); } public abstract void fetch(); } 有没有可以让我做以下事情的课程? Dog dog = SomeOtherProxy.newProxyInstance(classLoader, Dog.class, h); dog.fetch(); // Will be handled by the invocation handler …


5
是否应该使用实体框架4.1和MVC3启用或禁用动态代理?
有人可以提供一些建议或指出一些博客/文章来帮助做出这一决定吗?代理对我来说似乎很陌生,我不愿意使用它们。我喜欢通过在模型中使用虚拟属性来控制延迟加载的功能,但这几乎是我可以看到的所有好处。我的应用程序是一个简单的MVC Web应用程序,当实体经历更改状态时,我不需要为上下文绑定任何挂钩。 无论如何,这是我目前优缺点非常有限的清单,请让我知道我是否在这方面不满意。 优点 在“保存”或“更新”上,我可以无缝地应用“更改” 延迟加载配置非常容易。 缺点 对于我的实体,以前从未使用过代理,这是一种方法上的变化,对我自己和团队成员而言似乎不舒服。 难以调试。 如果我要序列化/反序列化,则需要额外的代码 在“保存”或“更新”上,代理必须与从上下文中检索到的对象相同。

1
Spring中的作用域代理是什么?
正如我们所知道Spring使用代理来增加功能(@Transactional和@Scheduled举例)。有两种选择-使用JDK动态代理(该类必须实现非空接口),或使用CGLIB代码生成器生成子类。我一直认为proxyMode允许我在JDK动态代理和CGLIB之间进行选择。 但是我能够创建一个示例,说明我的假设是错误的: 情况1: 单身人士: @Service public class MyBeanA { @Autowired private MyBeanB myBeanB; public void foo() { System.out.println(myBeanB.getCounter()); } public MyBeanB getMyBeanB() { return myBeanB; } } 原型: @Service @Scope(value = "prototype") public class MyBeanB { private static final AtomicLong COUNTER = new AtomicLong(0); private Long index; public MyBeanB() { …
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.