cglib相关内容

使用 Mockito 1.9.5 和 DexMaker-Mockito-1.0 的验证错误

像许多其他人一样,我很高兴听到 Mockito 现在可以在 Android 上运行 并按照 本教程 看它用我自己的眼睛.一切看起来都非常棒,我开始将模拟解决方案整合到我的 Android 测试项目中...... 错误 但是,在设置我的应用程序的测试项目以利用 mockito-all-1.9.5、dexmaker-1.0 和 dexmaker-mockito-1.0 jars 我的第一个 ..
发布时间:2022-01-14 13:19:27 移动开发

Spring java配置中调用@Bean注解的方法

我很好奇 spring 注入如何处理带有 @Bean 注释的调用方法.如果我在一个方法上放置一个 @Bean 注释,并返回一个实例,我明白这告诉 spring 通过调用该方法并获取返回的实例来创建一个 bean.但是,有时必须使用该 bean 连接其他 bean 或设置其他代码.通常的做法是调用 @Bean 注释方法来获取实例.我的问题是,为什么这不会导致 bean 的多个实例漂浮? 例如, ..
发布时间:2021-12-03 17:59:31 Java开发

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

我有一组相当奇怪的情况.我将 Spring 3.0.6 与实现和接口的 bean 一起使用.到目前为止,很正常的东西.我的 bean 也有一些受保护的方法.我正在使用一些 AOP(JDK 代理)并且一切正常. 当我想将这个 bean 注入另一个包类时,我的问题就出现了.在正常情况下,我将能够注入实现并访问受保护的方法.遗憾的是,由于是JDK代理的,所以只能基于接口注入. 因为我需要访问 ..
发布时间:2021-11-11 04:37:36 Java开发

无法重新定义类当我尝试重新转换类时

我试图动态修改类,例如在一行之前调用 sleep().我在运行时使用 Attach 方法将代理附加到 jvm.然后我从 jvm 得到目标类,并修改它(添加一行来调用 sleep()).而且我遇到了 redine 类错误.我正在使用JDK1.6.我正在使用 ASM 核心 API 来修改类.错误: Caused by: java.lang.UnsupportedOperationException: ..
发布时间:2021-11-11 04:33:38 Java开发

如何拦截Java中的对象创建

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

使用大量 AOP 请求范围 bean 时的性能问题

我正在使用 Spring 3 开发一个半大型应用程序,并且在一次将数百名用户投入使用时遇到了性能问题.我正在使用 Spring 的 AOP 代理使用多个请求范围的 bean,我可以看到,每次我在这些 bean 中的一个上调用任何方法时,都会调用 CGLIB 拦截器,然后调用 AbstractBeanFactory.getBean(),它调用 add()现有 Spring bean 的同步集.由于这 ..
发布时间:2021-11-11 04:28:24 Java开发

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

我有一个使用 Spring 运行的应用程序,我在某些地方使用了 AOP.由于我想在接口级别使用@Transactional 注解,所以我必须允许Spring 创建JDK 代理.所以,我没有将 proxy-target-class 属性设置为 true.另一方面,我不想为我想要建议的每个类都创建一个接口:如果接口没有意义,我只想拥有实现,而 Spring 应该创建一个 CGLIB 代理. 一切正常 ..
发布时间:2021-11-11 04:21:48 其他开发

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

假设我们有以下课程 @Service类我的类{公共无效 testA() {测试B();}@交易public void testB() { ... }} 现在,如果我们在测试中调用myClass.testA();,那么@Transactional 对testB 将不会生效.我认为原因如下. Cglib 将为 MyClass 创建一个代理 bean,如下所示: Class Cglib$My ..
发布时间:2021-11-11 04:20:54 Java开发

从注释处理器应用 CGLib 代理

我有一个可以在编译时处理自定义注释的工作注释处理器,我想应用 CGLIB 代理以将逻辑应用于使用 MethodInterceptor 的某些方法,我有两件事独立工作.我不知道如何应用注释处理器中的 CGLIB 代码. 我想要做的是能够使用我的自定义注释对类进行注释,并让它自动添加我已经应用到它的 Enhancer 代码,这样我就不必手动应用Enhancer 代码我自己. 这似乎是编译时 ..
发布时间:2021-11-10 23:00:06 Java开发

从注释处理器应用 CGLib 代理

我有一个可以在编译时处理自定义注释的工作注释处理器,我想应用 CGLIB 代理以将逻辑应用于使用 MethodInterceptor 的某些方法,我有两件事独立工作.我不知道如何应用注释处理器中的 CGLIB 代码. 我想要做的是能够使用我的自定义注释对类进行注释,并让它自动添加我已经应用到它的 Enhancer 代码,这样我就不必手动应用Enhancer 代码我自己. 这似乎是编译时 ..
发布时间:2021-11-10 22:59:47 Java开发

保留 CGLIB 代理的注释?

我正在尝试使用 AOP 框架创建一个对象,该框架使用 CGLIB 创建代理对象.奇怪的是,“增强型"代理对象没有前一个类的任何注释! 谁能告诉我如何让 CGLIB 保留它创建的代理上的注释? 干杯!尼拉夫 解决方案 CGLIB 创建给定类的子类来生成代理.除非在注释定义中明确指定,否则子类中不会保留注释.@Inherited 注释被使用为此目的. 您可以在您定义的注解中使 ..
发布时间:2021-11-10 22:06:17 Java开发

Java - 动态创建子类

我想以编程方式创建一个子类.我想我几乎没有选择 - Javassist、CGLib、BCEL 或 ASM. 用例是一个应用程序的内部是面向类的,而扩展是基于类的.因此,我不能将单个类作为由外部化脚本驱动的多个扩展的基础. 现在 - 我该怎么做?我找到了拦截​​方法调用、字段访问、初始化等的例子.但没有关于子类化. 我想以这样的课程结束: 有一个我想要的名字. 是给定类的( ..
发布时间:2021-08-31 19:54:09 Java开发

通过存储在字符串中的名称调用方法而无需反射 API?

我知道,使用反射 API,我们可以通过存储在字符串中的名称来调用方法. 但是,反射 API 不能用于高性能应用程序.在我的应用程序中,方法将以非常高的速度被调用.所以,我不能使用反射 API. 那么,反射 API 有哪些替代方案? 我做了研究,发现可以使用 cglib 和其他代码生成库. 但是,我没有找到任何通过存储在字符串中的名称来调用方法的示例. 使用反射替代方案 ..
发布时间:2021-07-06 18:46:08 Java开发

覆盖等于cglib代理

我想使用CGLIB代理将我自己的可重用equals()方法添加到现有对象中. 对象不一定实现任何接口,我需要能够将代理对象强制转换为原始类(而无需获取代理的目标). 不幸的是,似乎CGLIB实现了自己的equals()方法并确保仅调用该方法:有一个私有静态类(EqualsInterceptor),其方法intercept()实现了用于比较代理对象的合理逻辑.问题在于该方法最后将比较委托 ..
发布时间:2021-05-04 20:37:17 Java开发

为什么cglib不代理超级调用?

我在下面具有以下结构(我使用注释@Intercepted表示被拦截的方法):当我不使用而将被拦截的方法称为intercepted()时 super关键字按预期方式被称为拦截器.但是,当以以下方式调用super.intercepted()时,则永远不会调用拦截.为什么会这样? public class Base { @Intercepted public void intercep ..
发布时间:2020-11-29 23:08:44 Java开发

Easymock3 Spring4.0.0.RELEASE cglib兼容性

我按照此处给出的建议尝试使用spring进行一些单元测试启用aop的方法。但是,我怀疑spring-core下的重新打包的cglib类和cglib-nodep-2.2.jar相互冲突,导致类加载器将我的类代理两次加载。这将导致以下错误: 原因:java.lang.LinkageError:loader(sun / misc / Launcher $的实例) AppClassLoader):尝 ..
发布时间:2020-10-27 04:54:31 Java开发

向Java类添加字段

希望在运行时使用CGLib,ASM,BCEL(方面)和Javassist将字段添加到类中。... 只是为了直截了当看起来这些字节码操纵器不会更新实际的类,而是允许用户仅转储修改(例如使用CGLib和writeFile方法)。希望我能找到一个解决方案,可以(a)加载类(而不是使用BCEL进行InputStream),并且(b)更新类。 也许这很正常?人们通常会创建一个代理并将其传递给代理 ..
发布时间:2020-09-25 07:28:45 Java开发