小编Ani*_*eth的帖子

bean的Spring Boot Autowiring在maven多模块项目中不起作用

在使用 spring boot 和 maven 将我们的项目模块化为不同的独立 maven 项目时,我们遇到了一个问题,即多模块 maven 项目中的 bean 自动装配不起作用。

只是为了给你一个问题的概述,以下是迄今为止开发的独立maven项目

  1. Coreservices – 包含整个应用程序的 spring boot 域对象:输出 JAR
  2. DBservices1-包含用于访问数据库的 spring boot 存储库和服务(数据库服务):输出 JAR
  3. Rewards - 包含 Rewards 模块相关文件(控制器、服务(业务逻辑服务)、视图):输出 JAR
  4. RewardsApp- 独立可部署的 maven 项目:输出 WAR

下面是依赖结构 RewardsApp-> Rewards -> DBservices1 -> Coreservices

问题是@Autowired在 Rewards 和 DBservices1 中使用的注释来获取用@Service/注释的映射服务@RepositoryRewardsAppProject中不可用。

作为一种解决方法,我们RewardsApp使用@Bean注释配置了 bean ,然后服务器可以使用这些服务以成功启动。使用这种方法,我们需要手动配置RewardsApp依赖项目中使用的所有 bean 。我们的应用程序中有许多服务和存储库,我们认为创建这样的 bean 不是一种正确的方式,因为需要创建许多 bean。

请注意,我们已经在 package 下的所有项目中创建了所有 spring boot 控制器、服务、存储库 com.company.application

下面是主类的片段:

@SpringBootApplication
@ComponentScan(basePackages …
Run Code Online (Sandbox Code Playgroud)

java spring maven spring-boot

5
推荐指数
2
解决办法
5622
查看次数

标签 统计

java ×1

maven ×1

spring ×1

spring-boot ×1