当应用程序第一次启动时,我只需要运行一些方法一次。在springjava/kotlin中有什么基本的方法可以做到这一点吗?upd:第一次意味着我有一个新的应用程序,应该在启动时运行一些方法,但当我重新启动这个应用程序,我不希望它再次运行这个方法
ccgok5k51#
我建议您使用applicationreadyevent。根据文档,applicationreadyevent是一个:尽可能晚地发布事件,以指示应用程序已准备好为请求提供服务。因此,您可以实现自己的applicationlistener侦听applicationreadyevent,并仅在应用程序就绪时运行代码,例如:
@Component @Order(0) class CustomApplicationListener implements ApplicationListener<ApplicationReadyEvent> { @Override public void onApplicationEvent(ApplicationReadyEvent event) { // run your code } }
a6b3iqyw2#
您可以用@postconstruct注解您的方法(确保您已经生成了springbean)。在该方法的开头,如果不继续使用该方法,可以检查项目目录中是否存在文件“dummy.txt”。最后创建文件“dummy.txt”。您还可以在第一次启动java进程时添加属性,如下所示:
java -DfirstTime=true -jar myjar.jar
制造 firstTime 默认为false
firstTime
2条答案
按热度按时间ccgok5k51#
我建议您使用applicationreadyevent。根据文档,applicationreadyevent是一个:
尽可能晚地发布事件,以指示应用程序已准备好为请求提供服务。
因此,您可以实现自己的applicationlistener侦听applicationreadyevent,并仅在应用程序就绪时运行代码,例如:
a6b3iqyw2#
您可以用@postconstruct注解您的方法(确保您已经生成了springbean)。
在该方法的开头,如果不继续使用该方法,可以检查项目目录中是否存在文件“dummy.txt”。最后创建文件“dummy.txt”。
您还可以在第一次启动java进程时添加属性,如下所示:
制造
firstTime
默认为false