gpt4 book ai didi

Spring - 禁用特定 Bean 的 Autoproxy

转载 作者:行者123 更新时间:2023-12-03 22:45:29 24 4
gpt4 key购买 nike

为了 mock 一些@Transactional带注释的类,我必须为它们禁用 Springs 的 aop 代理创建。

如何配置我的 Spring Boot 应用程序以完全排除特定 spring bean 的任何代理创建,或者如何删除此 bean 的所有建议?

Subclassing e.g. InfrastructureAdvisorAutoProxyCreator已经被建议,但抛出 Class name [null] is not a known auto-proxy creator class错误。似乎它是在 org.springframework.aop.config.AopConfigUtils 中静态初始化的.

最佳答案

Spring 现在通过提供 AopTestUtils 提供了解决方案。 ,例如AopTestUtils.getUltimateTargetObject(bean)我之前的解决方法是使用 Springs 的 AopUtils 来打开代理。 :

@SuppressWarnings("unchecked")
public <T> T unwrapProxy(T bean) {
if (AopUtils.isAopProxy(bean) && bean instanceof Advised) {
Advised advised = (Advised) bean;
try {
bean = (T) advised.getTargetSource().getTarget();
} catch (Exception e) {
e.printStackTrace();
fail(e.getMessage());
}
}
return bean;
}

关于Spring - 禁用特定 Bean 的 Autoproxy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33348896/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com