如何解决报错:ERROR o.s.b.diagnostics.LoggingFailureAnalysisReporter:40 - *************************** APPLICATION FAILED TO START *************************** Description: Field commission in org.jeecg.modules.demo.orders.service.impl.OrderformServiceImpl required a bean of type 'org.jeecg.modules.demo.orders.entity.Commission' that could not be found. The injection point has the following annotations: - @org.springframework.beans.factory.annotation.Autowired(required=true) Action: Consider defining a bean of type 'org.jeecg.modules.demo.orders.entity.Commission' in your configuration.
时间: 2023-07-01 11:24:04 浏览: 125
这个错误提示是由于在 `org.jeecg.modules.demo.orders.service.impl.OrderformServiceImpl` 类中的 `commission` 字段使用了 `@Autowired` 注解,但是 Spring 容器中找不到类型为 `org.jeecg.modules.demo.orders.entity.Commission` 的 Bean。因此,需要在 Spring 容器中定义一个 `Commission` 类型的 Bean。
解决方法如下:
1. 在 Spring Boot 项目的主类上添加 `@ComponentScan` 注解,指定扫描 `org.jeecg` 包及其子包:
```java
@SpringBootApplication
@ComponentScan(basePackages = "org.jeecg")
public class DemoApplication {
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}
```
2. 在 `org.jeecg.modules.demo.orders.entity` 包下定义 `Commission` 类:
```java
@Component
public class Commission {
// ...
}
```
这里使用 `@Component` 注解将 `Commission` 类定义为 Spring 容器中的一个 Bean。
3. 在 `org.jeecg.modules.demo.orders.service.impl.OrderformServiceImpl` 类中使用 `@Qualifier` 注解指定要注入的 `Commission` Bean 的名称:
```java
@Autowired
@Qualifier("commission")
private Commission commission;
```
这里使用 `@Qualifier` 注解指定要注入的 Bean 的名称为 `"commission"`,与在第二步中定义的 Bean 名称一致。
这样就能解决该报错了。
阅读全文