gpt4 book ai didi

java - 如何解决Spring boot中的 "spring crudrepository bean not found"?

转载 作者:行者123 更新时间:2023-12-01 06:04:22 25 4
gpt4 key购买 nike

我对 Spring 比较陌生,并且在工作机器上有一个工作项目,但我尝试在我的个人笔记本电脑上设置相同的项目,并且在启动我的项目时遇到以下问题:

Description:
Field productRepository in prs.web.ProductController required a bean of type 'prs.domain.product.ProductRepository' that could not be found.
Action:
Consider defining a bean of type 'prs.domain.product.ProductRepository' in your configuration.

我已经在堆栈中经历了许多建议的修复,但没有起作用。这个相同的项目在其他机器上运行良好,包括拉取我的项目的同行,所以我相信它在我的配置中。我正在使用以下内容:IDE:Spring 工具套件版本:3.9.2.RELEASE版本号:201712210947平台:Eclipse Oxygen.2 (4.7.2)操作系统:Windows 10

这是我的代码:POM 依赖关系:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>

<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>

应用程序类 - PRSWebApplication:

package prs;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class PRSWebApplication {

public static void main(String[] args) {
SpringApplication.run(PRSWebApplication.class, args);
}
}

实体类 - Product.java

package prs.domain.product;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class Product {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private int id;
private int vendorID;
private String partNumber;
private String name;
private double price;
private String unit;
private String photoPath;

public Product() {
id = 0;
vendorID = 0;
partNumber = "";
name = "";
price = 0.0;
unit = "";
photoPath = "";
}

存储库:ProductRepository.java

package prs.domain.product;

import java.util.List;

import org.springframework.data.repository.CrudRepository;

public interface ProductRepository extends CrudRepository<Product, Integer>{

List<Product> findAllByVendorID(int id);
List<Product> findAllByVendorIDNot(int id);
}

Controller - ProductController.java

package prs.web;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;

import prs.domain.product.Product;
import prs.domain.product.ProductRepository;
import prs.util.PRSMaintenanceReturn;

@Controller
@RequestMapping(path="/Products")
public class ProductController extends BaseController {
@Autowired
private ProductRepository productRepository;

@GetMapping(path="/List")
public @ResponseBody Iterable<Product> getAllProducts() {
// This returns a JSON or XML with the users
return productRepository.findAll();
}

我已经看到了各种修复程序,其中说明了有关将我的应用程序移动到包中的信息,但它已经在“prs”包中。我还尝试了各种 pom 文件更改并重新安装了 Eclipse(各种版本,但目前使用的是上面提到的 STS 版本)。

非常感谢任何帮助!

最佳答案

您需要将 @Repository 注解添加到 ProductRepository ;现在,您尝试 Autowiring 一个不是 bean 的类,因此会出现错误。

关于java - 如何解决Spring boot中的 "spring crudrepository bean not found"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48115285/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com