spring - 注入来自依赖项但没有 @Bean 注释的 Spring bean
问题描述
我的Spring Boot
应用有一个新Zoo
@Service
类:
@RequiredArgsConstructor
@Service
public class Zoo{
private final Cat cat;
我需要在构造函数中注入一个Cat
类,该类是从我通过 pom 导入到项目的遗留库中获得的:
<dependency>
<groupId>com.example</groupId>
<artifactId>animals</artifactId>
</dependency>
package com.example.animals
class Cat{..}
我无法更改旧animals
包的代码以向Cat
类添加注释。
当我尝试运行应用程序时,出现此错误:
com.example.zoo 中构造函数的参数 0 需要找不到类型为“com.example.animals.cat”的 bean
有没有办法解决这个问题?
解决方案
是的,您可以通过创建一个@Configuration
类来解决此问题,在该类中定义一个代表 Cat 实例的 Spring Bean,如下例所示。
@Configuration
public class AppConfiguration {
@Bean
public Cat cat() {
return new Cat();
}
}
推荐阅读
- r - 用 NA inplace data.table 替换“NA”(NA 字符串)
- sql - 更新 PostgreSQL 中 JSON 列中的字段
- android - 拥有多个 Viewmodel 是否是一种不好的做法,每个 Fragment 大约一个?
- sql - 提高 Oracle 数据库 SQL 查询连接性能的可能方法
- jquery - jQuery 获取大的 csv 到 html 表
- twitter-bootstrap - 如何创建指向选项卡的链接?
- spring - JpaSpecificationExecutor 与 QueryDslPredicateExecutor
- mysql - 如何使用 Go 修复泄漏的 MySQL conns?
- python-3.x - 系统路径检查有 TypeError:“NoneType”类型的参数不可迭代
- marklogic - 只有“最新”的时间版本才能通过 TDE 生成三元组