当前位置: 首页 > 面试题库 >

“字段需要找不到类型的bean。” 使用mongodb的错误Spring Restful API

鲁光霁
2023-03-14
问题内容

我的项目目录结构是这样的。

src/
├── main/
│   └── java/
|       ├── model/
|       |   └── User.java
|       ├── rest/
|       |   ├── Application.java
|       |   ├── IndexController.java
|       |   └── UsersController.java
|       └── service/
|           └── UserService.java
└── resources/
    └── application.properties

这是我的 model/User.java文件

package main.java.model;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

@Document(collection="user")
public class User {

    private int age;
    private String country; 
    @Id
    private String id;
    private String name;


    public User() {
        super();
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public String getCountry() {
        return country;
    }

    public void setCountry(String country) {
        this.country = country;
    }
}

这是我的rest / UsersController.java文件

package main.java.rest;

import java.util.List;
import main.java.service.UserService;
import main.java.model.User;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping(value = "/users")
public class UsersController {

    @Autowired
    UserService userService;

    @RequestMapping(method = RequestMethod.GET)
    public List<User> getAllUsers() {
        return userService.findAll();
    }
}

这是我的service / UserService.java文件

package main.java.service;

import java.util.List;
import main.java.model.User;
import org.springframework.data.mongodb.repository.MongoRepository;

public interface UserService extends MongoRepository<User, String> {
    public List<User> findAll();
}

我可以编译它们(我正在使用gradle进行编译,因为我正在按照教程进行操作),但是当我运行jar文件时,它会抛出此错误。

申请启动失败

描述:

main.java.rest.UsersController中的userService字段需要找不到“ main.java.service.UserService”类型的Bean。

行动:

考虑在配置中定义类型为“ main.java.service.UserService”的bean。

不确定出什么问题后,我开始四处搜寻,发现需要包含Beans.xml文件并在其中注册userService。我做到了,但是没有用。我真的很陌生,所以我对发生的事情一无所知。


问题答案:

解决了。因此,默认情况下,@SpringBootApplication将扫描所有属于声明范围的软件包。

假设我的ExampleApplication具有@SpringBootApplication声明的主类在内部声明com.example.something,那么所有属于该类的组件都将com.example.something被扫描,而com.example.applicant不会被扫描。

因此,基于此问题,有两种方法可以做到这一点。

@SpringBootApplication(scanBasePackages={
"com.example.something", "com.example.application"})

这样,应用程序将扫描所有指定的组件,但是我认为如果规模越来越大怎么办?

因此,我使用第二种方法,即重组我的软件包,它起作用了!现在我的包结构变成了这样。

src/
├── main/
│   └── java/
|       ├── com.example/
|       |   └── Application.java
|       ├── com.example.model/
|       |   └── User.java
|       ├── com.example.controller/
|       |   ├── IndexController.java
|       |   └── UsersController.java
|       └── com.example.service/
|           └── UserService.java
└── resources/
    └── application.properties


 类似资料:
  • 我是一名spring boot学习者,所以我一直在尝试创建一些基本的spring boot应用程序。我试图运行开发的应用程序时出错。 我的错误是[[https://i.stack.imgur.com/oyQDi.png][1]][1] java: ItemDetails.java:[软件包名称:io.ajithan.springbootstarter.model] ItemResponse.jav

  • 结构没有问题。spring boot可以扫描UserMapper,但不能扫描UserService。我试着给我的UserService@Mapper组件,然后它就可以被扫描了。但我不知道如何使用其他方法进行扫描。我尝试了@服务,但不起作用。

  • 所以这几周我一直在学习Spring,一直在学习这个教程 这是我的model/user.java文件 这是我的rest/userscontroller.java文件 这是我的service/userservice.java文件 考虑在您的配置中定义一个“main.java.service.UserService”类型的bean。 不确定哪里出了问题,我开始四处搜索,发现需要包含文件并在其中注册use

  • 在spring Boot1.5.9上创建spring boot应用程序时,我收到以下错误消息。有谁能帮忙吗?提前道谢。 Oracle 11g数据库。 请找到我在pom.xml中使用的以下类: Java代码-应用程序: Java代码存储库: Java代码服务:

  • 我使用KOTLIN/SPRING BOOT(2.5.4)/MAVEN/MARIA DB我遇到了这样的错误,所以我想我必须找到make bean。但是我找不到我错过的东西。你能帮我吗...? 我的项目是Kotlin com。实例测试0831└ 控制器└ 用户控制器└ 实体└ 使用者└ 存储库└ 用户存储库└ 服务└ 用户服务└ UserServiceImpl 程序包com。实例test0831.co

  • 我有一个java项目,它将Spring Boot与JPA结合使用,并将Hibernate用于数据库。我正在尝试建立一个访问数据库的微服务。(我不熟悉微服务和Spring Boot)。 以下是主要课程: IGmCircularsDAO. class: GMCircularsDAOImpl。类别: ParentDAO。班 循环服务。班 当我运行这段代码时,我遇到了以下错误,我已经陷入其中一段时间了。