我有两个软件包:
com.example.commons
com.example.api
com.example.api中定义的RestController组件取决于com.example.commons中定义的存储库。
commons-module是一个单独的模块,它包含commons包,api-module是一个单独的模块,包含一个包api。
现在,当 api 开始执行时,spring 之前不会加载在 commons 模块中定义的存储库,因此执行失败,因为api 模块下包含的api包依赖于commons中的那些 bean。
以下是 API 模块开始执行的方式:
@SpringBootApplication
@ComponentScan({"com.example.commons", "com.example.api"})
public class ApiMain {
@Bean
public BCryptPasswordEncoder bCryptPasswordEncoder() {
return new BCryptPasswordEncoder();
}
public static void main(String[] args) {
SpringApplication.run(ApiMain.class, args);
}
}
如何确保com.example.commons中的所有 bean 都首先加载?
您可以使用@DependsOn注释。 这将确保创建您注入其 bean 的任何依赖项。