cglib相关内容

如何在Spring中注入具有受保护方法的JDK Proxied类?

我的情况相当奇怪.我将Spring 3.0.6与实现和接口的bean一起使用.到目前为止,还算正常.我的bean也有一些受保护的方法.我正在使用一些AOP(JDK代理),并且一切正常. 当我想将此bean注入另一个包类时,出现了我的问题.在正常情况下,我将能够注入实现并访问受保护的方法.不幸的是,由于它是JDK的代理,因此我只能基于该接口进行注入. 由于我需要访问受保护的方法,因此无法 ..
发布时间:2020-09-03 01:11:16 Java开发

同一类调用在Spring AOP cglib中无效

假设我们有以下课程 @Service class MyClass { public void testA() { testB(); } @Transactional public void testB() { ... } } 现在,如果我们在测试中调用myClass.testA();,则testB上的@Transactional将不 ..
发布时间:2020-09-03 00:39:28 Java开发

在Spring中混合使用JDK和CGLIB代理

我有一个与Spring一起运行的应用程序,并且在某些地方使用了AOP.由于我想在接口级别使用@Transactional批注,因此必须允许Spring创建JDK代理.因此,我没有将 proxy-target-class 属性设置为true.另一方面,我不想为每个我想建议的类都创建一个接口:如果该接口没有意义,那么我只想实现,Spring应该创建一个CGLIB代理. 一切都如我所描述的那样运转良好 ..
发布时间:2020-07-09 01:59:53 其他开发

Spring Framework中的CGLIB是什么?

什么是CGLIB?它与Spring有何关系?使用Spring Framework时,我们是否必须明确定义CGLIB的用法? 解决方案 参考Spring CGLIB是代码生成库. Spring使用CGLIB生成代理. Spring AOP默认将标准JDK动态代理用于AOP代理.这使得可以代理任何接口(或一组接口). 是的,您必须告诉spring明确使用基于CGLIB的代理. ..
发布时间:2020-07-09 01:57:21 其他开发

Java检测类是否是代理

是否可以检测某个类是否是代理(动态, cglib 或否则)? 让类A和B实现公共接口I.然后我需要定义一个例程classEquals签名 public boolean classEquals(Class a, Class b); 使得 仅在a.equals(b)或Proxy(a).equals(b)时才评估为 true ,其中P ..
发布时间:2020-05-10 01:27:19 Java开发

我尝试重新转换班级时无法重新定义班级

我试图动态修改类,例如在一行之前调用sleep().我在运行时使用Attach方法将代理附加到了jvm.然后我从jvm获取了目标类,并对其进行了修改(添加一行以调用sleep()).而且我得到了redine类错误.我正在使用JDK1.6.我正在使用ASM核心API来修改类. 错误: Caused by: java.lang.UnsupportedOperationException: cla ..
发布时间:2020-04-25 07:29:10 Java开发

将java对象写入类文件

有没有办法将加载的Java对象写入 .class 文件,或者是否可以轻松读取任何其他类型的文件来表示实例的属性。 例如,CGLIB将创建一个扩展另一个的代理bean,我真的想将这个增强的bean导出到文件看看它是如何被增强的。 解决方案 对于cglib,实例只能序列化,并且只有实例的方法拦截器支持序列化。没有其他办法。 为了获得cglib生成的类文件,你可以调用 voi ..
发布时间:2019-01-10 13:32:40 Java开发

具有匿名类的CGLib Enhancer

我正在使用CGLib代理类。我遇到了一个无法增强匿名类的问题,因为它们没有默认构造函数。 我的代码如下所示: Enhancer enhancer = new Enhancer(); enhancer.setCallback(new MethodInterceptor(){....}); enhancer.setSuperclass(type); //类型是我正在尝试增强 e ..
发布时间:2019-01-09 22:48:30 Java开发

如何在Java中拦截对象创建

我有一点奇怪的要求。我猜。 我想使用我创建的自定义代理来装饰实现特定接口的所有对象,但是我需要这对代码本身透明。可以包含在构建过​​程中的东西将是完美的。 我在AOP中思考但没有看到这样的功能,我正在寻找想法,甚至是疯狂的。我正在考虑在编译之后更改源代码并重新编译它至少替换对new的直接调用(我想这不会通过反射创建对象但是会是一个很好的开始)但我可以想到一百万个问题这可能会带来,打破我 ..
发布时间:2019-01-02 21:23:48 Java开发

spring,如何更改cglib命名策略

当spring创建代理时,它使用带有默认命名策略的cglib。有没有办法改变命名政策?生成的类名与我使用的另一个框架发生冲突。 解决方案 看来cglib 声明它可以检测到名称冲突,但出于某种原因,它不会出现这种情况。 由于这个问题(和你的报告?)你正在使用的另一个框架(catch-exception)修补他们的代码以避免它。 ..
发布时间:2019-01-02 14:55:22 Java开发

spring - 强制@Autowired字段的cglib代理

我有混合堆栈:EJB和Spring。对于自动装配Spring到EJB,我使用 SpringBeanAutowiringInterceptor (不确定这是否会影响我的问题)。 Whlie尝试以下列方式自动装配bean: @Scope(proxyMode = ScopedProxyMode.TARGET_CLASS,value =“singleton”) @Repository 公 ..
发布时间:2018-12-28 22:16:05 Java开发

Spring Batch @StepScope无法生成CGLIB子类

编辑 我创建了一个复制问题的测试项目。它可以在 https://github.com/tomverelst/test-batch 找到。 首先运行maven命令 exec:java 以启动HSQL数据库。然后,您可以运行JUnit测试 MigrationJobConfigurationTest 来加载Spring应用程序上下文。 原始问题 启动Spring Batch应用程 ..
发布时间:2018-12-28 16:07:53 Java开发