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<Product, Integer>
。
无论如何,它们应该匹配。
【讨论】:
【参考方案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) 不调用回调