自动在另一个

时间:2018-04-13 12:56:36

标签: maven spring-boot

在我当前的项目中,我的后端模块中有一个名为CassandraConfiguration的类,用于建立与服务器的连接。我的后端模块在我的核心项目中使用,所以当然它也必须连接到cassandra才能工作。

问题是:我的核心项目似乎不知道CassandraConfiguration的存在。

我的尝试是创建一个extends CassandraConfiguration但我不喜欢这个解决方案的类。

我错过了什么吗?

编辑:

所以这是我的项目结构:

我有三个模块:

  • 卡桑德拉
  • 前端(requries cassandra)
  • 休息(需要cassandra)

前端和休息都需要cassandra,所以我把它放在前端和休息的依赖中:

<dependency>
        <groupId>mycompany</groupId>
        <artifactId>backend-cassandra</artifactId>
        <version>${project.version}</version>
</dependency>

此外,由于它是一个弹簧启动项目,所有这些都有弹簧启动作为父级。

INSIDE Cassandra Module是我想在其他模块中重用的配置。

但这不会自动生效。我在maven配置中遗漏了什么吗?

编辑2:

我认为我找到了问题,但不是解决方案:

    <dependency>
        <groupId>myproject</groupId>
        <artifactId>backend-cassandra</artifactId>
        <version>${project.version}</version>
    </dependency>

根本无法识别。在构建项目时无法自动看到配置:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.7.0:compile (default-compile) on project myproject-restful: Compilation failure: Compilation failure:
[ERROR] /C:/Users/Sebas/IdeaProjects/myproject/myproject-restful/src/main/java/de/iutp/myproject/restful/ControlConfiguration.java:[3,49] package myproject.backend.cassandra.config does not exist
[ERROR] /C:/Users/Sebas/IdeaProjects/myproject/myproject-restful/src/main/java/myproject/restful/ControlConfiguration.java:[7,43] cannot find symbol

1 个答案:

答案 0 :(得分:0)

在Spring应用程序中,您通常应该使用@Autowired@Inject注释来注入依赖项(它们是等效的,它与您使用的那个相关并不重要。)

为了实现这一点,您要注入的类必须是一个Spring组件,它将被Spring的上下文初始化器接收。

通过使用@Component注释,可以轻松地将任何类转换为Spring组件。

当使用Spring Boot时,它应该被上下文初始化器自动拾取,准备注入其他类。