gpt4 book ai didi

.net - Spring.NET 和构造函数拦截器

转载 作者:行者123 更新时间:2023-12-02 05:15:33 25 4
gpt4 key购买 nike

我试图在构造时对对象执行一些 AOP,并找到了 IConstructorInterceptor,它非常适合我想要的东西,但它 doesn't appear to work (至少在 1.2 版中)。

我还查看了 IObjectPostProcessor 和 IInstantiationAwareObjectPostProcessor,但我找不到任何方法在构造时间前后对对象进行处理...IInstantiationAwareObjectPostProcessor 上的 PostProcessPropertyValues 方法很接近,但它只通过setter 注入(inject)的属性不是构造函数 arg 值...

具体来说,我想要的是在实例化之后对对象的引用,同时,对注入(inject)到构造函数中的对象的引用。有什么办法可以做到这一点,或者我最好的选择是切换到 setter 注入(inject)并使用后处理器或 MethodInterceptor?

最佳答案

AOP 提出的是调用拦截,而不是依赖注入(inject)。使用 Spring.Net,您可以使用 setter 或构造函数来执行任何依赖项注入(inject)。对于您的帖子和评论,它应该有效。

在 Spring.Net 初始化管道上,第一步分析依赖关系图,执行任何对象创建并设置所有依赖关系。之后,如果您的类实现“Spring.Objects.Factory.IInitializingObject”,方法“void AfterPropertiesSet();”叫做。执行此操作的其他方法是使用您的对象配置,您可以在对象节点上设置初始化方法。此行为基于 IoC/DI 概念。

也许您需要创建一个特定的工厂对象。要执行此操作,您的工厂必须实现 Spring.Objects.Factory.IFactoryObject 接口(interface)。这有助于容器为您委派对象创建(此配置上的属性和构造函数适用于您的工厂)。

最好的问候

关于.net - Spring.NET 和构造函数拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/728533/

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