这是我第一次遇到这个错误
`描述:
com.team.zah.blog.service.Impl.PostServiceImpl 中构造函数的参数 0 需要一个类型为“com.team.zah.blog.repository.PostRepository”的 bean,但无法找到。
行动:
考虑在配置中定义“com.team.zah.blog.repository.PostRepository”类型的 bean。`
我无法理解这里的问题,因为我已经清楚地使用了 lombok 注释:
@AllArgsConstructor
在我的班级
类代码在这里:
package com.team.zah.blog.service.Impl;
import com.team.zah.blog.dto.PostDTO;
import com.team.zah.blog.model.Post;
import com.team.zah.blog.repository.PostRepository;
import com.team.zah.blog.service.PostService;
import lombok.AllArgsConstructor;
import org.modelmapper.ModelMapper;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class PostServiceImpl implements PostService {
private PostRepository postRepository;
private ModelMapper modelMapper;
@Override
public PostDTO create(PostDTO postDTO) {
Post post = modelMapper.map(postDTO, Post.class);
Post savedPost = postRepository.save(post);
return modelMapper.map(savedPost, PostDTO.class);
}
}
我尝试像这样手动完成
@Autowired
public void setPostRepository(PostRepository postRepository) {
this.postRepository = postRepository;
}
@Autowired
public void setModelMapper(ModelMapper modelMapper) {
this.modelMapper = modelMapper;
}
但我仍然遇到缺少 bean 的问题。
我想知道这里的问题是什么?
也许这个错误是因为 lombok 的构造上没有 que 注释 @Autowired。
你为什么要尝试这个:
@Service
public class PostServiceImpl implements PostService {
private final PostRepository postRepository;
private final ModelMapper modelMapper;
@Autowired
public PostServiceImpl(PostRepository postRepository, ModelMapper, modelMapper) {
this.postRepository = postRepository;
this.modelMapper = modelMapper;
}
...
}