小编Mah*_*108的帖子

Spring Boot / MapStruct:构造函数的参数 1 需要一个 bean...考虑定义一个 type 的 bean

我对Java了解不多,但我认为它应该足以管理这个小任务......

我正在构建一个微服务,它通过多个休息端点提供歌曲和歌曲列表。但它不仅仅在调用时返回歌曲,它还必须联系另一个服务并使用附加信息增强歌曲对象。为此,我实现了一个 Dto-Class,并使用 mapstruct 来处理后面的逻辑。我在其他项目中也这样做过,没有任何问题。但现在我很挣扎,因为这个错误,我不知道如何解决 - 它说:

mk.microservices.songsservice.services.SongServiceImpl 中的构造函数的参数 1 需要类型为“mk.microservices.songsservice.web.mapper.SongMapper”的 bean,但无法找到。

行动:

考虑在配置中定义“mk.microservices.songsservice.web.mapper.SongMapper”类型的 bean。

以下是我的代码的摘录:

歌曲服务实现

import lombok.RequiredArgsConstructor;
import mk.microservices.songsservice.domain.Song;
import mk.microservices.songsservice.repositories.SongRepository;
import mk.microservices.songsservice.web.mapper.SongMapper;
import mk.microservices.songsservice.web.model.SongDto;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Optional;

@RequiredArgsConstructor
@Service
public class SongServiceImpl implements SongService {

    private final SongRepository songRepository;
    private final SongMapper songMapper;

    @Override
    public SongDto getSongById(Integer id) {
        return songMapper.songToSongDto(songRepository.findById(id));
    }

    @Override
    public List<Song> getAllSongs() {
        return songRepository.findAll();
    }
....
}
Run Code Online (Sandbox Code Playgroud)

歌曲映射器

import org.mapstruct.DecoratedWith;

import java.util.Optional;

@MapStruct
@DecoratedWith(SongMapperDecorator.class)
public interface SongMapper {

    SongDto …
Run Code Online (Sandbox Code Playgroud)

spring lombok spring-boot mapstruct

1
推荐指数
1
解决办法
5204
查看次数

标签 统计

lombok ×1

mapstruct ×1

spring ×1

spring-boot ×1