问题标签 [cglib]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
json - Gson 序列化 Spring bean
我将Gson 1.6 和Spring Framework 3.0 用于WebSphere 6.1上的 Java Web 应用程序。我有一些 Spring bean,其实际实例是CGLIB代理。当我尝试通过 Gson 序列化这些 bean 时,类的非原始属性没有被序列化。相反,我得到类似的东西:
我期待的东西更像
当我序列化一个非代理 POJO 时,输出完全符合我的预期。如何让 Gson 生成我期望的输出?
maven - Maven - 无法解析工件 - cglib:cglib-nodep:jar:null
我正在尝试构建一个大型项目并失败并出现以下错误:
我找到并下载cglib-nodep-2.1_3.jar
了由于我缺乏使用 maven 的经验,我不确定如何(hrr ...)使构建过程使用这个文件,而不是(我猜)从互联网上获取它失败。
java - 选择哪个库在运行时生成类
我需要在运行时扩展类,特别是检测对类状态所做的更改。如果可能的话,我希望能够通过拦截字段分配来检测更改,如果不拦截 setter 就可以了。我应该使用哪个库,为什么?javassist 或 cglib 还是?java.lang.reflect.Proxy 这可能吗?你能比较这些库吗?谢谢。
java - cglib - MethodInterceptor & finalize?
我使用 cglibMethodInterceptor
来包装服务。在对服务的每次调用中,它应该打开数据会话,将调用传递给服务并最终关闭会话。
但是,我注意到从Finalizer
. 我得到以下堆栈跟踪:
我究竟做错了什么?我该如何解决?
spring - 在 Spring 中,为什么 POJO 上的 CGLib 会丢失行号?
Spring MVC 网络应用程序:
我有一个没有行号的堆栈跟踪(显示在底部)。
我认为这是由于控制器上运行的 CGLib 所致。但这对我来说很奇怪,实际的异常发生在ServerBatchRemoteRequestAcceptor
未注入的 pojo 中,而不是控制器中。它仅在 Controller 对象中创建。
例子:
有人可以向我解释这种行为吗?由于 CGLib,我的控制器下的每个呼叫都会没有行号吗?
我应该将控制器写入接口以便使用代理吗?这正常吗?我是为服务做的,但控制器是简单的 POJO。
java - java - 如何在java中创建一个保留方法参数注释的动态代理?
我目前正在尝试代理一些现有的 JAX/RS 资源,以允许我使用 Hibernate Validator 的方法验证支持。但是,当我代理我的类(当前使用 cglib 2.2)时,FormParam 注释不存在于代理类中的参数上,因此 JAX/RS 运行时(apache wink)不会填充参数。下面是一些显示这一点的测试代码:
这给了我以下输出:
还有其他选择吗?
java - 使用 CGLIB 创建时,将对象发送到 EJB 变为 null
我正在为客户端层中的对象(SERIALIZABLE 对象)创建代理,并将此对象发送到 EJB(在 Weblogic 10.3.4 服务器上使用 EJB 3.0)。在 EJB 中,参数为空!我确保我发送的对象在客户端中不为空,并且它是可序列化的(System.out.println(c instanceof Serializable) 打印为 true)。可能是什么问题呢?
在客户端创建对象:
java - 在 Java Android 中动态编辑/创建类
我正在寻找一种在运行时动态定义类并在 Android 中实例化它们的方法。据我了解,这已经在 Android 中完成,我只需要一些帮助来弄清楚。
我可以在 Javascript 和 PHP 中得到类似的结果。我知道它可以在 Java 中使用 ASM、BCEL 或 CGlib 之类的东西来完成。但是,我对其中任何一个都不够了解,无法了解它们是否可以在 Android 上运行。或者,它们会起作用,有什么影响?
如果假设这三个都可以在 Android 中运行,那么有人可以指出我从哪里开始理解使用哪个以及如何使用它的正确方向吗?
我没有做过太多的 Java 编程,而且我最近才在 Android 中使用它,所以,我很感激我能得到的所有帮助/纠正。话虽如此,如果您的回答不简单,我将不胜感激:不要这样做。我正在寻找如何具体做到这一点,而不是如何正确地做到这一点。至少,直到我的应用程序崩溃。:)
我相信这已经在 Android 中发生在以下情况下:(不是 100% 肯定)
从 JSON 创建一个对象。AIDL
java - Java检测类是否是代理
是否可以检测一个类是否是代理(动态、cglib或其他)?
让类A
和B
实现一个通用接口I
。然后我需要定义一个classEquals
签名例程
这样它只有在或时才计算为真,其中表示类型的动态代理(动态、cglib 或其他)。a.equals(b)
Proxy(a).equals(b)
Proxy(a)
A
在 的帮助下@Jigar Joshi
,到目前为止是这样的:
问题是它没有检测到例如CGLIB代理。
spring - 在 Spring 中混合使用 JDK 和 CGLIB 代理
我有一个使用 Spring 运行的应用程序,并且在某些地方使用 AOP。由于我想在接口级别使用@Transactional 注释,我必须允许 Spring 创建 JDK 代理。所以,我没有将proxy-target-class属性设置为 true。另一方面,我不想为我想要建议的每个类创建一个接口:如果接口没有意义,我只想拥有实现,Spring 应该创建一个 CGLIB 代理。
正如我所描述的,一切都运行良好。但是我想在接口中添加一些其他注释(由我创建)并由实现类“继承”(就像@Transactional 一样)。事实证明,使用 Spring 中对 AOP 的内置支持我无法做到这一点(至少经过一些研究我无法弄清楚如何去做。接口中的注释在实现类中不可见,并且因此该课程没有得到建议)。
所以我决定实现自己的切入点和拦截器,允许其他方法注释在接口上进行。基本上,我的切入点查找方法上的注释,直到找不到,在类或其超类实现的接口的相同方法(相同的名称和参数类型)中。
问题是:当我声明一个 DefaultAdvisorAutoProxyCreator bean 时,它将正确应用此切入点/拦截器,建议没有接口的类的行为被破坏。显然出了点问题,Spring 尝试两次代理我的类,一次使用 CGLIB,然后使用 JDK。
这是我的配置文件:
这是我想要代理的类,没有接口:
当我尝试在其他一些 bean 中自动装配它时,例如:
我得到以下异常:
这是 Spring 输出的一些行:
如果有人认为这会有所帮助,我可以提供全部输出。我不知道为什么 Spring 试图“双重代理”我的课程,以及为什么当我声明 DefaultAdvisorAutoProxyCreator bean 时才会发生这种情况。
我已经为此苦苦挣扎了一段时间,非常感谢任何帮助或想法。
编辑:
根据要求,这是我的拦截器源代码。它基本上记录了方法的执行(只有用 @Trace 注释的方法才会被拦截)。如果该方法带有@Trace(false) 注释,则日志记录将暂停,直到该方法返回。
谢谢!