[英]Spring Boot UnsatisfiedDependencyException on startup
我在 Spring 中使用CrudRepository
实现创建了一个 MVC API 并收到UnsatisfiedDependencyException
。
我第一次尝试使用@Autowired
注释,但不起作用
控制器代码:
package marcel.pirlog.licenta.userManagement.controllers;
import marcel.pirlog.licenta.userManagement.services.IAccountService;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
@RestController("/account")
public class LoginController {
IAccountService accountService;
public LoginController(IAccountService accountService) {
this.accountService = accountService;
}
@RequestMapping(name = "/", method = RequestMethod.GET)
public ResponseEntity<String> getAll(){
return ResponseEntity.ok(accountService.findAll().toString());
}
}
服务代码:
package marcel.pirlog.licenta.userManagement.services;
import marcel.pirlog.licenta.userManagement.entities.AccountEntity;
import marcel.pirlog.licenta.userManagement.repositorys.IAccountRepository;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class AccountService implements IAccountService {
private final IAccountRepository accountRepository;
public AccountService(IAccountRepository accountRepository) {
this.accountRepository = accountRepository;
}
@Override
public List<AccountEntity> findAll() {
List<AccountEntity> result = (List<AccountEntity>)accountRepository.findAll();
return result;
}
}
存储库代码:
@Repository
public interface IAccountRepository extends CrudRepository<AccountEntity, Long> {
}
收到 UnsatisfiedDependencyException:
org.springframework.beans.factory.UnsatisfiedDependencyException:在文件 [C:\\Users\\parlo\\Documents\\GitHub\\licenta\\ProiectLicenta\\Server\\user-management\\target\\classes\\marcel\\ 中定义名称为“/account”的 bean 创建时出错pirlog\\licenta\\userManagement\\controllers\\LoginController.class]:通过构造函数参数0表示的不满足依赖; 嵌套异常是 org.springframework.beans.factory.UnsatisfiedDependencyException:在文件 [C:\\Users\\parlo\\Documents\\GitHub\\licenta\\ProiectLicenta\\Server\\user-management\\target\\classes\\ 中定义名称为“accountService”的 bean 创建时出错marcel\\pirlog\\licenta\\userManagement\\services\\AccountService.class]:通过构造函数参数0表示的不满足的依赖; 嵌套异常是 org.springframework.beans.factory.BeanCreationException:创建名为“IAccountRepository”的 bean 时出错:调用 init 方法失败; 嵌套异常是 java.lang.IllegalArgumentException: Not a managed type: class marcel.pirlog.licenta.userManagement.entities.AccountEntity ...
正如在评论中提到使用@Entity
您AccountEntity
。
插入的
@RestController("/account")
public class LoginController {
尝试
@RestController
@RequestMapping("account")
public class LoginController {
向我们展示 AccountEntity 类。 是否带有注释@Entity,您是否有 Long 类型的 id。 它应该是这样的:
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class AccountEntity {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private Long id;
private String name;
public Long getId() { return id; }
public void setId(Long id) { this.id = id; }
public String getName() { return name; }
public void setName(String name) { this.name = name; }
}
尝试添加 @EnableJpaRepositories("your.package.name") 并确保你有 @ComponentScan("base.package.name") 到 SpringInitializer。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.