CommandLineRunner run() 方法没有被调用

Nar*_*esh 3 hibernate spring-boot

我已经尝试了该平台上提供的所有答案,但没有成功。我正在执行此命令行运行程序,但运行方法未调用。

我感谢你的帮助。

谢谢。

MyCommandlineRunner 类

在此输入图像描述

我尝试过下面的解决方案,但得到了这个异常。

第一:在 Bootstrap 类(具有 SpringApplication.run(..., args) 的 main 方法的类)中,您可以在 @SpringBootApplication 注释处添加属性 scanBasePackages :

@SpringBootApplication(scanBasePackages = {"com.project.data.runner"}) 这将告诉 Spring 在 com.project.data.runner 包中查找组件。

在此输入图像描述

Mat*_*llo 9

您的 Bootstrap 类在包中com.project.demo.data

您的命令行运行程序位于软件包中com.project.data.runner

Spring 将扫描 的子包中的组件com.project.demo.data,即 中的组件com.project.demo.data.*,这就是您的命令行运行程序从未运行的原因。Spring从未找到过他。

你有一些选择,但我会说两个:

第一main:在您的 Bootstrap 类(具有with 方法的类)中,您可以在注释处SpringApplication.run(..., args)添加属性:scanBasePackages@SpringBootApplication

@SpringBootApplication(scanBasePackages = {"com.project.data.runner"})
Run Code Online (Sandbox Code Playgroud)

这将告诉 Spring 也在包中查找组件com.project.data.runner

或者

第二:将命令行运行器从 移动com.project.data.runnercom.project.demo.data.runner(或类似的东西com.project.demo.data

更新

由于我们已经解决了聊天中的问题,我将用解决方案更新答案。

由于您使用的是 Spring Data JPA 存储库,因此如果您的存储库不在 Bootstrap 类所在的包或子包下,那么您必须添加到@EnableJpaRepositories一个@Configuration类并显式配置您的存储库所在的包。

您的引导类将如下所示:

@SpringBootApplication(scanBasePackages = {"com.project.data.runner"})
Run Code Online (Sandbox Code Playgroud)