LinFu IoC高流量网站的最佳实践
我们正处于建立一个相当高流量的网站(每周大约600万页展示次数)的最后阶段,并且正在使用LinFu作为新架构中的IoC容器。
我们有一个非常标准的设置:
Web Layer
|
IServices <- Services Implementation
|
IDataRepository <- DataRepository Implementation
|
DataBase
在Web层中,我们有一个LinFu ServiceContainer实例(在我们的实现中是一个单例),它提供了页面所需的Services对象的实例。 DataRepository程序集中的每个类也以相同的方式创建(每个Services构造函数都接受它所需的DataRepository对象的接口)。
一个简单的例子是:
IWeatherServices
{
Weather GetForecast();
Weather GetPrediction();
}
[Implements(typeof(IWeatherServices))
WeatherServices(IWeatherForecastRepository, IWeatherPredictionRepository) : IWeatherServices
{
// implementation of methods
}
(以及DataRepository类的类似功能)
我们暂时将生命周期类型保留为默认值(我相信这是PerRequest)。
我的主要问题是:
我们应该将ServiceContainer作为Web应用程序中的单例吗?
是否应将实现类上的LifecycleType保留为默认值?
我知道这有点开放,但我们正在进行负载测试期间的调整过程,因此我对一般意见非常感兴趣。
没有找到相关结果
已邀请:
2 个回复
味芯憨
擅香
这应该会给LinFu容器带来显着的性能提升,因为它不必经常检查您的字段,属性和自动注入方法。