Java Guice中重叠的作用域?
Guice的概念是,通常用于web服务器请求 作用域是否可以在长寿命对象中使用,与运行的代码相比,长寿命对象的生命周期可能是异步的 例如,海绵和Bukkit都提供在加载/卸载世界时触发的事件 然后勾选这些世界,并抛出各种事件 是否值得使用作用域和作用域注释,以便在加载和卸载世界时,使用带有参数的注释来注入/初始化特定于服务/世界的侦听器Java Guice中重叠的作用域?,java,guice,minecraft,bukkit,spongeapi,Java,Guice,Minecraft,Bukkit,Spongeapi,Guice的概念是,通常用于web服务器请求 作用域是否可以在长寿命对象中使用,与运行的代码相比,长寿命对象的生命周期可能是异步的 例如,海绵和Bukkit都提供在加载/卸载世界时触发的事件 然后勾选这些世界,并抛出各种事件 是否值得使用作用域和作用域注释,以便在加载和卸载世界时,使用带有参数的注释来注入/初始化特定于服务/世界的侦听器 public abstract class WorldService { World world; public WorldService(W
public abstract class WorldService {
World world;
public WorldService(World world) {
this.world = world;
}
abstract void tick();
abstract void start();
abstract void stop();
public static class TimeTracker extends WorldService {
private final Logger logger;
private int count;
@Inject
public TimeTracker(World world, Logger logger) {
super(world);
this.logger = logger;
}
@Override
void tick() {
count++;
}
@Override
void start() {
count = 0;
}
@Override
void stop() {
logger.debug("World loaded for "+count+" ticks");
}
}
}
提供一个允许定义自己作用域的库
如果您在可重入作用域中,并将Runnable分派给
ExecutorService通过此方法包装,当前作用域内容
将在可运行运行运行之前冻结并重新配置-因此
与您提交时的范围内容相同
可运行的
这样就有可能获得范围界定的所有好处,以及
具有复杂的线程模型
因此,您不仅可以使用此库拥有自定义作用域,而且还可以通过调度任务成功地传递对象,可能与
这允许一些非常整洁的代码。对于底层选民和亲密选民,我希望有人评论我未能传达的内容。
是否值得使用Scopes?
是一个非常“主要基于意见”的问题。至于沟通不好(“不清楚你在问什么”),这可能与人们不了解范围以及为什么它与这里相关有关有关有关。像这样的问题通常可以用“不,你疯了,甚至认为它们可能适用于这个领域”来回答,“太广泛”的意思是,“是的,但有很多方法可以做到”然而,人们仍然对这个问题持怀疑态度。