我有一个我创建的 spring-boot-starter 应用程序,它作为 CommandLineRunner 启动,在 Kubernetes 中作为 CronJob 运行,类似于:
@SpringBootApplication
@EnableAutoConfiguration
public class JobApplication implements CommandLineRunner {
Logger logger = LoggerFactory.getLogger(JobApplication.class);
public static void main(String[] args) {
ConfigurableApplicationContext context = SpringApplication.run(JobApplication.class, args);
context.close();
}
@Override
public void run(String... args) throws Exception {
// run the job
}
}
我目前在这样的 Dockerfile 中运行应用程序,一切正常。
CMD java -jar /job/job.jar
在此应用程序中,有一些数据库代码和 DTO,我想将它们用作 Spring Web 服务并公开,最好在同一代码库中,这样我就不必创建多个 Github 存储库和 Java 项目并发布一个共享库使用。我想保持简单并且能够直接编译和使用它们。
有没有办法做到这一点?我想我需要第二个 WebApplication 类,但我不确定如何执行它,所以它使用它而不是 Job。
如果没有,是否有推荐的方法来做我想做的事情(如果这是唯一的方法,构建多个 jar 是可以的......但我真的很想将所有代码保留在同一个项目中)?
隔江千里
相关分类