首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Spring:应该在启动时加载初始化的Singleton

Spring:应该在启动时加载初始化的Singleton
EN

Stack Overflow用户
提问于 2016-12-26 23:55:25
回答 4查看 4.2K关注 0票数 2

我有一个Spring (Boot)应用程序,它执行一些繁重的NLP文本处理。我正在寻找一种方法,通过预先加载一些模型来优化性能,而且只需要加载一次。

场景

有一个@Service,它由几种分析文本的方法组成(例如,提取关键字)。预先训练的模型将由我在服务中使用的NLP框架加载,这需要大量的时间和内存。这些模型可以重用,因此不需要每次都加载它们。最有效的方法是加载它们一次,并将它们保存在内存中。您还可以假设模型是线程安全的。

问题

定义单例并在启动时初始化它的最佳方式是什么?

目前,我在我的服务上使用@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON),但据我所知,不能保证服务将在启动时初始化。我也尝试过@Configuration,但没有找到解决方案。

EN

回答 4

Stack Overflow用户

发布于 2016-12-27 12:19:20

FactoryBeans可以支持单例和原型,可以在需要时懒惰地创建对象,也可以在启动时急切地创建对象。

票数 2
EN

Stack Overflow用户

发布于 2016-12-27 00:01:48

据我所知,如果您使用"@Scope(ConfigurableBeanFactory.SCOPE_SINGLETON)“,那么您的服务将在启动时初始化。有关更多信息,请参阅以下帖子:@Singleton @Startup fully Asynchronous?

票数 1
EN

Stack Overflow用户

发布于 2016-12-27 00:09:46

在您的服务的一个方法上使用@PostConstruct注释,它将在实例创建后被调用。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41333502

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档