繁体   English   中英

启动时 Spring Boot UnsatisfiedDependencyException

[英]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 ...

正如在评论中提到使用@EntityAccountEntity

插入的

@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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM