應用程式無法啟動
Kodlama.io.Devs.business.concretes.ProgrammingLanguageManager 中建構式的引數 1 需要一個無法找到的“org.modelmapper.ModelMapper”型別的 bean。
考慮在你的配置中定義一個 'org.modelmapper.ModelMapper' 型別的 bean。
編程語言管理器
@Service
public class ProgrammingLanguageManager implements ProgrammingLanguageService {
@Autowired
private ProgrammingLanguageRepository programmingLanguageRepository;
private ModelMapper modelMapper;
@Autowired
public ProgrammingLanguageManager(ProgrammingLanguageRepository programmingLanguageRepository,
ModelMapper modelMapper) {
this.programmingLanguageRepository = programmingLanguageRepository;
this.modelMapper = modelMapper;
}
// * * * CRUD OPERATIONS * * *
@Override
public CreateProgrammingLanguageResponse add(CreateProgrammingLanguageRequest createProgrammingLanguageRequest)
throws Exception {
nameCannotBeSame(createProgrammingLanguageRequest.getName());
ProgrammingLanguage programmingLanguage = modelMapper.map(createProgrammingLanguageRequest,
ProgrammingLanguage.class);
ProgrammingLanguage saveProgrammingLanguageResult = programmingLanguageRepository.save(programmingLanguage);
CreateProgrammingLanguageResponse createProgrammingLanguageResponse = modelMapper
.map(saveProgrammingLanguageResult, CreateProgrammingLanguageResponse.class);
return createProgrammingLanguageResponse;
}
@Override
public UpdateProgrammingLanguageResponse update(UpdateProgrammingLanguageRequest updateProgrammingLanguageRequest)
throws Exception {
nameCannotBeSame(updateProgrammingLanguageRequest.getName());
ProgrammingLanguage programmingLanguage = modelMapper.map(updateProgrammingLanguageRequest,
ProgrammingLanguage.class);
ProgrammingLanguage saveProgrammingLanguageResult = programmingLanguageRepository.save(programmingLanguage);
UpdateProgrammingLanguageResponse updateProgrammingLanguageResponse = modelMapper
.map(saveProgrammingLanguageResult, UpdateProgrammingLanguageResponse.class);
return updateProgrammingLanguageResponse;
}
@Override
public DeleteProgrammingLanguageResponse delete(DeleteProgrammingLanguageRequest deleteProgrammingLanguageRequest) {
ProgrammingLanguage getReferenceByIdProgrammingLanguageResult = programmingLanguageRepository
.getReferenceById(deleteProgrammingLanguageRequest.getId());
programmingLanguageRepository.delete(getReferenceByIdProgrammingLanguageResult);
DeleteProgrammingLanguageResponse deleteProgrammingLanguageResponse = modelMapper
.map(getReferenceByIdProgrammingLanguageResult, DeleteProgrammingLanguageResponse.class);
return deleteProgrammingLanguageResponse;
}
// * * * GET METHODS * * *
@Override
public List<GetAllProgrammingLanguagesResponse> getAll() {
List<ProgrammingLanguage> findAllProgrammingLanguageResult = programmingLanguageRepository.findAll();
return modelMapper.map(findAllProgrammingLanguageResult,
new TypeToken<List<GetAllProgrammingLanguagesResponse>>() {
}.getType());
}
@Override
public GetByIdProgrammingLanguageResponse getById(
GetByIdProgrammingLanguageRequest getByIdProgrammingLanguageRequest) {
ProgrammingLanguage getReferenceByIdProgrammingLanguageResult = programmingLanguageRepository
.getReferenceById(getByIdProgrammingLanguageRequest.getId());
GetByIdProgrammingLanguageResponse getByIdProgrammingLanguageResponse = modelMapper
.map(getReferenceByIdProgrammingLanguageResult, GetByIdProgrammingLanguageResponse.class);
return getByIdProgrammingLanguageResponse;
}
public GetByNameProgrammingLanguageResponse getByName(
GetByNameProgrammingLanguageRequest getByNameProgrammingLanguageRequest) {
ProgrammingLanguage getReferenceByNameProgrammingLanguageResult = new ProgrammingLanguage();
getReferenceByNameProgrammingLanguageResult = programmingLanguageRepository
.getByName(getByNameProgrammingLanguageRequest.toString());
GetByNameProgrammingLanguageResponse getByNameProgrammingLanguageResponse = modelMapper
.map(getReferenceByNameProgrammingLanguageResult, GetByNameProgrammingLanguageResponse.class);
return getByNameProgrammingLanguageResponse;
}
// * * * BUSINESS RULES * * *
private void nameCannotBeSame(String name) throws Exception {
ProgrammingLanguage programmingLanguage = programmingLanguageRepository.getByName(name);
var result = programmingLanguage;
if (result != null) {
throw new Exception(Messages.NAME_ALREADY_EXISTS);
}
}
}
我錯過了一些東西,但我不知道是什么
uj5u.com熱心網友回復:
您的 ModelMapper 類沒有注冊為 spring bean,它只是一個普通的 java 類。為了解決這個問題,@Configuration如果你想自動裝配它,你需要創建一個定義 bean 的類。
@Configuration
public class AppConfiguration {
@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}
}
否則,您不能進行依賴注入,您必須自己創建物件new ModelMapper();
另一個提示是避免使用@Autowire. 建構式級別的注釋就足夠了。
uj5u.com熱心網友回復:
從錯誤訊息中可以清楚地看出bean of type 'org.modelmapper.ModelMapper'缺少 。因此,請將以下 bean 添加到您的專案中,然后重試。
@Bean
public ModelMapper modelMapper() {
return new ModelMapper();
}
注意: 將此 bean 添加到用@Configuration.
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/531979.html
