java - 如何在没有@PostConsrtuct/init/@EventListener的情况下在Spring启动时运行一次方法?
问题描述
我有一个 Spring 应用程序,需要在启动时将文件从资源文件夹加载到外部 ftp 存储。所以应用程序正在启动->文件上传->应用程序启动成功->负责上传的bean被销毁。问题是我不想对某些bean使用@PostConsrtuct/init之类的东西,并且在我的上下文中有空闲的bean,它在启动时完成了他的工作。
我不想使用@EventListener 来侦听刷新上下文并运行逻辑,因为即使在启动后,该侦听器也会执行此上传每次上下文刷新的操作。
我的应用程序是纯 Spring 应用程序(不是 Spring Boot),所以我不能使用 CommandLineRunner/AppStartupRunner 接口。
是否可以设置一些运行一次方法并死掉的bean?
解决方案
好吧,我应该在发布问题之前检查 Spring App 中 CommandLineRunner 的行为。看起来 CommandLineRunner 即使不在 Spring Boot 应用程序中也能完美运行。所以 CommandLineRunner 完全符合我的所有需求。
推荐阅读
- flutter - 如何在 Flutter 中请求和检查权限
- objective-c - 在 Unity iOS 中使用 swift 静态库
- react-native - 我在本机反应上添加构造函数,但它显示错误
- php - Laravel 队列未将变量发送到刀片文件
- javascript - 角度动画:动画仅在 ngFor 列表中添加项目
- javascript - 将 PDF 从服务器发送到客户端
- git - 从 git 远程推送 URL 中删除错误写入的 URL
- sql - 在 SELECT 语句中使用 SQL 正则表达式 (LIKE)
- list - 如何将列表中的元素增加另一个字符
- c - 如何在 C 和 ubuntu 中用盐加密 SHA512 哈希?