gpt4 book ai didi

java - 如何创建具有特定最大实例数的 spring bean

转载 作者:行者123 更新时间:2023-12-02 12:30:10 25 4
gpt4 key购买 nike

我需要在 RAM 有限的服务器中创建一个 Spring 原型(prototype) bean。一种选择是使用 spring bean,它是单例和原型(prototype)范围的混合,我可以在其中指定最大实例和线程数。

Spring中有什么方法可以创建多实例bean吗?如果不是,我们在使用 Spring 原型(prototype) bean 时如何避免内存不足错误。

最佳答案

如果您确实想使用 Spring 来实现您的目的,我建议您使用工厂 bean

您的背景:

<beans ...>
<bean id="tool" class="com.example.ToolFactory"/>
</beans>

工厂 bean 的示例:

public class ToolFactory implements FactoryBean<Tool> {
private AtomicInteger currentId = new AtomicInteger();

@Override
public Tool getObject() throws Exception {
return new Tool(currentId.incrementAndGet());
}

@Override
public Class<?> getObjectType() { return Tool.class; }

@Override
public boolean isSingleton() { return false; }
}

public class Tool {
private final int id;
public Tool(int id) { this.id = id; }
public int getId() { return id; }
}

Toolfactory.getObject()中,您可以实现您想要的任何逻辑。
您可以在该工厂内创建一个 Bean 池。
或者,当达到 Bean 计数限制时,您可以抛出异常。

How to use the Spring FactoryBean?
What's a FactoryBean?

关于java - 如何创建具有特定最大实例数的 spring bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45308311/

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