gpt4 book ai didi

java - 使用具有缓存行为的工厂方法配置 PicoContainer

转载 作者:太空宇宙 更新时间:2023-11-04 11:24:23 25 4
gpt4 key购买 nike

我想通过给 PicoContainer 提供一个工厂方法(如 Guice 中的 @Provides 方法)来配置 PicoContainer,以便在每次(重新)启动容器时用于创建一个新实例。这里的要点是,我需要该实例在每个周期内都是单例,换句话说,我希望它被缓存。

最佳答案

我找到了解决方案:配置一个FactoryInjector

MutablePicoContainer pico = new PicoBuilder()
.withCaching()
.withLifecycle()
.build();
pico.addAdapter(new FactoryInjector<WebDriver>(){
@Override
public WebDriver getComponentInstance(PicoContainer container, Type into) {
return new FirefoxDriver();
}
});
pico.start()
d1 = pico.getComponent(WebDriver.class);
d2 = pico.getComponent(WebDriver.class);
assert d1 == d2;
pico.stop();
pico.dispose();
d3 = pico.getComponent(WebDriver.class);
assert d1 != d3;

如您所见,pico 仅在第一次时才会创建一个新实例。停止容器之前的任何后续请求都将返回完全相同的实例。

关于java - 使用具有缓存行为的工厂方法配置 PicoContainer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44543494/

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