静态属性注入配置最佳实践
本文关键字:最佳 配置 属性 注入 静态 | 更新日期: 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
。