java - 考虑在您的配置中定义“com.project.airCompanies.repo.AirCompanyRepository”类型的 bean。使用 MySQL 数据库
问题描述
这是我实现 airCompaniesService 并覆盖一些方法的类:
package com.project.airCompanies.service.impl;
import com.project.airCompanies.mapper.AirCompanyMapper;
import com.project.airCompanies.model.AirCompany;
import com.project.airCompanies.model.request.AirCompanyRequest;
import com.project.airCompanies.model.response.AirCompanyResponse;
import com.project.airCompanies.repo.AirCompanyRepository;
import com.project.airCompanies.service.AirCompanyService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@RequiredArgsConstructor
public class AirCompanyServiceImpl implements AirCompanyService {
private final AirCompanyRepository repo;
private final AirCompanyMapper mapper;
@Override
public AirCompanyResponse save(AirCompanyRequest request) {
AirCompany result = mapper.requestToModel(request);
result = repo.save(result);
return mapper.modelToResponse(result);
}
@Override
public void delete(Integer id) {
repo.deleteById(id);
}
}
它是接口存储库,我在其中创建了 MySql 存储库
package com.project.airCompanies.repo;
import com.project.airCompanies.model.AirCompany;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
@Repository
public interface AirCompanyRepository extends JpaRepository<AirCompany, Integer> {
}
我有错误:
2021-03-04 12:07:58.439 INFO 7924 --- [ restartedMain] c.p.a.AirCompaniesApplication : Starting AirCompaniesApplication using Java 15.0.1 on DESKTOP-2S6243E with PID 7924 (D:\TaskSynergyWay\airCompanies\target\classes started by natal in D:\TaskSynergyWay\airCompanies)
2021-03-04 12:07:58.443 INFO 7924 --- [ restartedMain] c.p.a.AirCompaniesApplication : No active profile set, falling back to default profiles: default
2021-03-04 12:07:58.486 INFO 7924 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable
2021-03-04 12:07:58.486 INFO 7924 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG'
2021-03-04 12:07:59.235 INFO 7924 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http)
2021-03-04 12:07:59.242 INFO 7924 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2021-03-04 12:07:59.242 INFO 7924 --- [ restartedMain] org.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/9.0.43]
2021-03-04 12:07:59.302 INFO 7924 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2021-03-04 12:07:59.302 INFO 7924 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 815 ms
2021-03-04 12:07:59.331 WARN 7924 --- [ restartedMain] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'airCompaniesController' defined in file [D:\TaskSynergyWay\airCompanies\target\classes\com\project\airCompanies\controller\AirCompaniesController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'airCompanyServiceImpl' defined in file [D:\TaskSynergyWay\airCompanies\target\classes\com\project\airCompanies\service\impl\AirCompanyServiceImpl.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.project.airCompanies.repo.AirCompanyRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}
2021-03-04 12:07:59.334 INFO 7924 --- [ restartedMain] o.apache.catalina.core.StandardService : Stopping service [Tomcat]
2021-03-04 12:07:59.345 INFO 7924 --- [ restartedMain] ConditionEvaluationReportLoggingListener :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2021-03-04 12:07:59.360 ERROR 7924 --- [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter :
***************************
APPLICATION FAILED TO START
***************************
Description:
Parameter 0 of constructor in com.project.airCompanies.service.impl.AirCompanyServiceImpl required a bean of type 'com.project.airCompanies.repo.AirCompanyRepository' that could not be found.
Action:
Consider defining a bean of type 'com.project.airCompanies.repo.AirCompanyRepository' in your configuration.
Process finished with exit code 0
那么我该如何解决这个问题考虑在你的配置中定义一个'com.project.airCompanies.repo.AirCompanyRepository'类型的bean。用 MySQL 数据库?
解决方案
你必须确保你的组件是由 spring 搜索的。如果你的结构如下
ROOT
----com.example
---------------services
---------------repositories
---------------controllers
---------------models
---------------configs
----ApplicationMain.java
那么你可能不需要手动通知spring来搜索组件类,否则你可以这样做
@ComponentScan({"com.project.airCompanies.service", "com.project.airCompanies.repo"})
到你的SpringBootApplication
班级
文档
推荐阅读
- c - 释放 SDL_Surface 导致分段错误(核心转储)
- git - Google Colab 不会应用我对本地目录中的代码所做的更改
- php - 在 WooCommerce 中保存并显示自定义结帐字段
- ruby - “成功安装捆绑器”后,宝石列表不显示捆绑器
- unity3d - 统一粒子系统问题
- javafx - 有没有办法在警报按钮上设置字体?
- c++ - 设置目录后如何让cmake上升一级
- python - 类型错误:turn_left() 缺少 1 个必需的位置参数:'self'
- c++ - 如何优化 n-queens OpenMP 并行程序?
- javascript - React.js DOM 元素未显示