spring Sping Boot 要求在配置中提供Service @Bean

lhcgjxsq  于 2023-03-11  发布在  Spring
关注(0)|答案(1)|浏览(120)

过去一年我一直在Sping Boot 中使用Java微服务,但是我从来没有直接使用过API,所以我决定创建自己的API,我将在服务中实现它,也就是说在不同的项目中。
所以我想也许这就是我的错误所在?没有实现我就不能创建API?我是不是被迫在这个项目中实现API(我不认为这是答案)
正如您在标题中看到的,我的服务接口和配置类中的Bean有问题。
我得到的错误如下
com.project.shareitAPI.api.controller.AlumnController中的字段“校友服务”需要类型为“com.project.shareitAPI.api.service.AlumnService”的Bean,但找不到该Bean。
进样点具有以下注解:- @org.springframework.beans.工厂.注解.自动连线(必需=真)
行动:
考虑在配置中定义一个类型为“com.project.shareitAPI.api.service.AlumnService”的bean。
我有一个这样的服务接口

@Service
public interface AlumnService {

    AlumnDTO postNewAlumn(AlumnDTO body);

}

A控制器

@RestController
@RequestMapping("api/v1/alumns")
@Slf4j
public class AlumnController {

    @Autowired
    AlumnService alumnService;

    @PostMapping(path = "/new")
    public ResponseEntity<AlumnDTO> postNewAlumn(
            @RequestBody AlumnDTO body
    ) {
        return ResponseEntity.ok(alumnService.postNewAlumn(body));
    }
}

这是一个配置类,其中包含请求的@Bean,但我知道这是不正确的。

@Configuration
public class ShareItConfiguration {

    @Bean
    AlumnService alumnService(){
        return new AlumnService() {
            @Override
            public AlumnDTO postNewAlumn(AlumnDTO body) {
                return null;
            }
        };
    }
}

也许我不理解API是如何工作的或者是如何构造的,但是它应该是怎样的呢?因为我不理解错误。
谢谢你的帮助和知识!

编辑

如果您需要了解,下面是项目结构
Project Structure

8xiog9wr

8xiog9wr1#

您的“ShareItConfiguration”类是否与用@SpringBootApplication注解的类在同一个包中(或下面的包)?

相关问题