【发布时间】:2022-10-14 00:25:17
【问题描述】:
我正在尝试使用 Spring Boot 创建 REST 服务,但在服务和存储库之间使用 @Autowired 时遇到问题。
这是我的代码:
实体
package com.model;
import javax.persistence.*;
@Entity
@Table(name=Constants.USERS, schema = Constants.SCHEMA)
public class Users {
@Column(name= "username", nullable=false)
private String username;
@Column(name="lastname", nullable = false)
private String lastname;
public Users() {
}
public Users(String username, String lastname) {
this.username = username;
this.lastname = lastname;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
}
存储库
package com.repository;
import com.model.Users;
import java.util.List;
@Repository
public interface UsersRepository extends JPAConnector<Users,Integer> {
public List<Users> findAll();
public long count();
}
服务
package com.service;
import com.repository.UsersRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class UsersService{
@Autowired
private final UsersRepository usersRepository;
public UsersService(UsersRepository usersRepository) {
this.usersRepository = usersRepository;
}
public long count() {
long conteggio = usersRepository.count();
return conteggio;
}
}
这是回溯
Error creating bean with name 'usersService' .Unsatisfied dependency expressed through
constructor paramet
er 0; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.repository.UsersRepository' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {}.
No qualifying bean of type 'com.intesasanpaolo.dsi.core.bear.ptrm0.connector.jpa.UsersRepository' available:
预计至少有 1 个 bean 有资格作为 autowire 候选者。依赖注释:{}
【问题讨论】:
-
将
@Autowired从属性移动到UsersService中的ctor。
标签: java spring spring-boot jpa spring-data-jpa