在我的spring boot项目中,几个restapi端点需要一个初始化需要几分钟的类。因此,启动restapi需要几分钟。
有没有可能(使用spring boot)使这几个端点异步初始化,即立即初始化所有其他端点,restapi开始工作,并且每当需要的类被初始化并且在此之前用户根本不可用时,这些端点就被初始化?
我试着调查 @Async
和其他方法,使事情异步在 Spring 启动,但这并没有帮助。我非常感谢你的帮助。谢谢您!
在我的spring boot项目中,几个restapi端点需要一个初始化需要几分钟的类。因此,启动restapi需要几分钟。
有没有可能(使用spring boot)使这几个端点异步初始化,即立即初始化所有其他端点,restapi开始工作,并且每当需要的类被初始化并且在此之前用户根本不可用时,这些端点就被初始化?
我试着调查 @Async
和其他方法,使事情异步在 Spring 启动,但这并没有帮助。我非常感谢你的帮助。谢谢您!
2条答案
按热度按时间tuwxkamq1#
尝试
@Lazy
注解。当它应用于spring组件时,它将在第一次调用时初始化。一些资源:
https://www.baeldung.com/spring-lazy-annotation
java文档
wtzytmuj2#
spring中没有内置任何东西可以做您想做的事情,但是您可以自己实现它,在服务初始化时返回404notfound响应,在服务可用时返回200ok。以下是一种实现方法:
与其使用公共池,不如注入
Executor
或者类似的。这将取决于应用程序的其余部分以及它如何处理线程。