代码之家  ›  专栏  ›  技术社区  ›  Alconja

Spring.NET网站&构造函数拦截器

  •  3
  • Alconja  · 技术社区  · 15 年前

    我正在尝试在构建时对对象进行AOP,并找到了IConstructorInterceptor,它非常适合我想要的,但是它 doesn't appear to work

    我还研究了IObjectPostProcessor和IInstantiationAwareObjectPostProcessor,但我找不到任何方法在构造时对对象进行处理。。。IInstantationAwareObjectPostProcessor上的PostProcessPropertyValues方法很接近,但它只传递setter注入的属性而不是构造函数参数值。。。

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

    1 回复  |  直到 15 年前
        1
  •  0
  •   Luiz Carlos Faria    10 年前

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

    打开春季.Net初始化管道,第一步分析依赖关系图,执行任何对象创建并设置所有依赖项。之后,如果你的类实现“Spring.Objects.Factory.IInitializationObject”,则调用方法“void AfterPropertiesSet();”。另一种方法是使用您的对象配置,您可以在对象节点上设置init方法。 这种行为基于IoC/DI概念。

    也许你需要创建一个特定的工厂对象。为此,您的工厂必须Spring.Objects.Factory.IFactoryObject接口。容器和容器的构造函数有助于您对此对象的创建进行委托。

    谨致问候