在我当前的项目中,我的后端模块中有一个名为CassandraConfiguration
的类,用于建立与服务器的连接。我的后端模块在我的核心项目中使用,所以当然它也必须连接到cassandra才能工作。
问题是:我的核心项目似乎不知道CassandraConfiguration
的存在。
我的尝试是创建一个extends CassandraConfiguration
但我不喜欢这个解决方案的类。
我错过了什么吗?
编辑:
所以这是我的项目结构:
我有三个模块:
前端和休息都需要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
答案 0 :(得分:0)
在Spring应用程序中,您通常应该使用@Autowired
或@Inject
注释来注入依赖项(它们是等效的,它与您使用的那个相关并不重要。)
为了实现这一点,您要注入的类必须是一个Spring组件,它将被Spring的上下文初始化器接收。
通过使用@Component
注释,可以轻松地将任何类转换为Spring组件。
当使用Spring Boot时,它应该被上下文初始化器自动拾取,准备注入其他类。