静态属性注入配置最佳实践

本文关键字:最佳 配置 属性 注入 静态 | 更新日期: 2023-09-27 18:24:14

我在多个类中使用了助手组件。这是典型的场景:

public class HelperComponent 
{
    public void HelperMethod() 
    {
        // do something
    }
}
public class MyClass 
{
    private static HelperComponent Helper{ get; set;}
    public void Method1() 
    {
        Helper.HelperMethod();
    }
}

用法:new MyClass().Method1();

我想知道这个配置的spring.net配置/解决方案建议是什么?最初,我用这行来获取助手组件:

ContextRegistry.GetContext().GetObject("HelperComponentName")

然后我读到这不是一个更好的解决方案,我应该使用注入来避免对spring的依赖,并使用透明的组件。

我的问题是:如何使用弹簧配置来实现这一点?

我可以将静态属性注入类吗?或者我应该使Helper实例属性为?如果我将Helper转换为实例属性,我是否需要在spring配置中定义MyClass并使用CreateObject实例化MyClass
如果是的话,这对我来说不是一个令人满意的解决方案,因为我想如上所述实例化MyClass。

感谢您的帮助。

静态属性注入配置最佳实践

我对spring不太熟悉,但在使用IOC容器时,通常会注册应用程序的所有依赖项(及其生命周期),然后解析对象图顶部的"入口点"对象。

这允许您利用IOC容器的特性,如构造函数和属性注入。

这样设置后,就可以通过IOC容器配置来管理各个对象的生命周期。

在这种情况下,在IOC容器配置中将HelperComponent注册为单例之后,我将在MyClass的构造函数中注入HelperComponent