【发布时间】:2017-05-04 22:18:31
【问题描述】:
我有一个 Spring Boot REST 应用程序,其中包含运行良好的 JPA 实体和存储库类(和相关服务)。现在我想将这些类重用于其他目的,比如每周的 CRON 作业和类似的一次性进程,它们将从命令行运行。
最好的方法是什么?挑战在于持久化上下文属性是在 application.properties 中设置的,并且除非应用程序类被初始化,否则持久化上下文不会被初始化。
我可以将所有这些类分解到一个单独的项目中,并使用不同的方式在其中定义持久性上下文,但是如果实体或 DAO 方法发生任何变化,这将变得更加令人头疼。
我真正想要的是从命令行告诉 Spring Boot 运行另一个类而不是主应用程序(并正确初始化持久性上下文)。有什么办法吗?
(注意我问了一个类似的问题,但没有得到回应:Possible to use Spring Boot repositories from another main class?)
[Edit] 是否可以通过创建一个实现 CommandLineRunner 的 @component 来做到这一点?我只希望它运行一个简单的一次性进程,而不是完整的 REST 应用程序。
【问题讨论】:
标签: java rest spring-boot