REST API:org.springframework.beans.factory.UnsatisfiedDependencyException:

Posted

技术标签:

【中文标题】REST API:org.springframework.beans.factory.UnsatisfiedDependencyException:【英文标题】:REST API: org.springframework.beans.factory.UnsatisfiedDependencyException: 【发布时间】:2020-08-18 04:48:56 【问题描述】:

我正在构建一个 REST API,但似乎无法摆脱 org.springframework.beans.factory.UnsatisfiedDependencyException,我无法发现其中的问题。我将欣赏对此的新见解。

ps:为此使用 mongo DB

首先关闭完整的错误

2020-05-04 01:16:31.468  WARN 14412 
--- [           main] ConfigServletWebServerApplicationContext : 
Exception encountered during context initialization - 
cancelling refresh attempt: 
org.springframework.beans.factory.UnsatisfiedDependencyException: 
Error creating bean with name 'productController': 
Unsatisfied dependency expressed through field 'productService'; 
nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException:
 Error creating bean with name 'productServiceImpl':
 Unsatisfied dependency expressed through field 'productRepo'; 
nested exception is org.springframework.beans.factory.BeanCreationException: 
Error creating bean with name 'productRepo': 
Invocation of init method failed; nested exception is org.springframework.data.mapping.PropertyReferenceException:
 No property id found for type Product!

public class Product 

    @Id
    private int ProductId;

// and other variables plus setters and getters 
@Repository
public interface ProductRepo extends MongoRepository<Product, String> 

   // methods


public interface ProductService 
 // methods



@Service
public class ProductServiceImpl implements ProductService 

    @Autowired
    private ProductRepo productRepo;

// implementations

【问题讨论】:

这能回答你的问题吗? Spring Data JPA - "No Property Found for Type" Exception 【参考方案1】:

尝试如下更改Product 类:

@Entity
public class Product 

    @Id
    private String productId; // MongoRepository<Product, String>

    // methods

Product 类中,缺少@Entity 注释,productId 应该是String,如存储库中指定的那样。

如果要保留当前字段类型,或者更改为extends MongoRepository&lt;Product, Integer&gt;

无论如何,它们应该匹配。

【讨论】:

【参考方案2】:

让您的 Spring 应用程序知道您的类所在的位置。 使用@ComponentScan(basePackages = "com.package")

此外,如果您的产品类是您想要保留的东西,请使用@Entity 标记它,以便 Spring 知道它并从中创建一个 Bean。

@service标记你的接口ProductService,这样Spring就知道了。

【讨论】:

以上是关于REST API:org.springframework.beans.factory.UnsatisfiedDependencyException:的主要内容,如果未能解决你的问题,请参考以下文章

SpringCloudAlibaba项目报错java.lang.IllegalArgumentException: Could not find class [org.springframew解决方案

SpringCloudAlibaba项目报错java.lang.IllegalArgumentException: Could not find class [org.springframew解决方案

springboot打包成war,部署到tomcat无法访问的问题

Rest,Rest Api,Web Service,RestFul Api之间的区别[关闭]

Wordpress REST Api:add_action('rest_api_init', callback) 不调用回调

Wordpress REST API (wp-api) 404 错误:无法访问 WordPress REST API