【发布时间】:2020-10-19 15:36:23
【问题描述】:
我们在 Spring Boot 中没有获得以下代码类型的合格 bean:
Main class:
package *.*.*;
@SpringBootApplication
public class BankApplication {
public static void main(String[] args) {
SpringApplication.run(BankApplication.class, args);
}
}
package *.*.*.dataaccess.repository;
@Repository
public interface BankRepository extends JpaRepository<BankEntity, String> {
}
package *.*.*.dataaccess.dao;
@Getter
@Setter
@ToString
@NoArgsConstructor
@AllArgsConstructor
@Entity
@Table(name = "Bank")
public class BankEntity {
//fileds
}
package *.*.*.dataaccess.utils;
@Component
public class DBUtils {
@Autowired
BankRepository bnRepo;
*/
public void saveBank(BankDto dto) {
//preparing bnEntity -entity
this.bnRepo.saveAndFlush(bnEntity);
}
}
添加以下与 MySQL 相关的依赖项: pom.xml:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>org.flywaydb</groupId>
<artifactId>flyway-core</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<scope>runtime</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/com.wix/wix-embedded-mysql -->
<dependency>
<groupId>com.wix</groupId>
<artifactId>wix-embedded-mysql</artifactId>
<version>4.2.0</version>
</dependency>
测试时出错:
@ExtendWith(SpringExtension.class)
@SpringBootTest(classes = { DBUtils.class })
public class BankTest {
@Autowired
DBUtils dbUtils;
@Test
public void saveAndFlishTest() {
dbUtils.saveBank(getBankDetails()); // once this is working then will added junit checks using asserts
}
}
错误详情如下:
原因: org.springframework.beans.factory.UnsatisfiedDependencyException: 创建名为“DBUtils”的 bean 时出错:不满足的依赖关系 通过字段“bnRepo”表示;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException: 否 '..*.dataaccess.repository.BankRepository' 类型的限定 bean 可用:预计至少有 1 个符合 autowire 条件的 bean 候选人。依赖注解: {@org.springframework.beans.factory.annotation.Autowired(required=true)}
【问题讨论】:
标签: java spring-boot