Java SPRING MVC+;休眠,无法获取所有记录

Java SPRING MVC+;休眠,无法获取所有记录,java,spring,postgresql,hibernate,spring-mvc,Java,Spring,Postgresql,Hibernate,Spring Mvc,我正在尝试使用SpringMVC、Hibernate和Tomcat创建WebApp。 我是一个完全的新手,所以请不要生气 所以我创建了数据库,访问了它,可以创建表等等 索引页正常显示,但当我试图列出表中的所有记录时,我遇到错误: org.springframework.beans.factory.UnsatifiedDependencyException:创建名为“mainController”的bean时出错:通过字段“contractsRepository”表示的未满足的依赖关系;嵌套异常为

我正在尝试使用SpringMVC、Hibernate和Tomcat创建WebApp。 我是一个完全的新手,所以请不要生气

所以我创建了数据库,访问了它,可以创建表等等

索引页正常显示,但当我试图列出表中的所有记录时,我遇到错误:

org.springframework.beans.factory.UnsatifiedDependencyException:创建名为“mainController”的bean时出错:通过字段“contractsRepository”表示的未满足的依赖关系;嵌套异常为org.springframework.beans.factory.NoSuchBean定义异常:没有“pl.Bluesoft.repositories.ContractsRepository”类型的合格bean可用:至少需要1个符合autowire候选条件的bean。依赖项注释:{@org.springframework.beans.factory.annotation.Autowired(required=true)}

下面是我的classess和xmls:

合同实体

package pl.Bluesoft.entities;


import pl.Bluesoft.entities.System;

import javax.persistence.*;

@Entity
public class Contract {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long Id;
private int contractNumber;
private double contractAmount;
private java.util.Date contractStartDate;
private java.util.Date contractEndDate;
@OneToOne
private System system;
private boolean isContractActive;
private String contractAmountPeriod;


public long getId() {
    return Id;
}

public void setId(long id) {
    Id = id;
}

public int getContractNumber() {
    return contractNumber;
}

public void setContractNumber(int contractNumber) {
    this.contractNumber = contractNumber;
}

public double getContractAmount() {
    return contractAmount;
}

public void setContractAmount(double contractAmount) {
    this.contractAmount = contractAmount;
}

public java.util.Date getContractStartDate() {
    return contractStartDate;
}

public void setContractStartDate(java.util.Date contractStartDate) {
    this.contractStartDate = contractStartDate;
}

public java.util.Date getContractEndDate() {
    return contractEndDate;
}

public void setContractEndDate(java.util.Date contractEndDate) {
    this.contractEndDate = contractEndDate;
}

public System getSystem() {
    return system;
}

public void setSystem(System system) {
    this.system = system;
}

public boolean isContractActive() {
    return isContractActive;
}

public void setContractActive(boolean contractActive) {
    isContractActive = contractActive;
}

public String getContractAmountPeriod() {
    return contractAmountPeriod;
}

public void setContractAmountPeriod(String contractAmountPeriod) {
    this.contractAmountPeriod = contractAmountPeriod;
}
}
合同存储库:

 package pl.Bluesoft.repositories;

    import org.springframework.data.repository.CrudRepository;
    import org.springframework.stereotype.Repository;
    import pl.Bluesoft.entities.Contract;

    @Repository
    public interface ContractsRepository extends CrudRepository <Contract, Long> 
         {

      }
包pl.Bluesoft.repositories;
导入org.springframework.data.repository.crudepository;
导入org.springframework.stereotype.Repository;
导入pl.Bluesoft.entities.Contract;
@存储库
公共接口契约repository扩展了crudepository
{
}
主控制器:

package pl.Bluesoft.controllers;

    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import pl.Bluesoft.entities.Contract;
    import pl.Bluesoft.repositories.ContractsRepository;

    @Controller
    public class MainController {


    @Autowired
    private ContractsRepository contractsRepository;



    @RequestMapping("/")
    public String showIndex(){
        return "index";
    }

    @GetMapping("/all")
    public @ResponseBody Iterable<Contract> getAllContracts() {
        return contractsRepository.findAll();
    }


          }
包pl.Bluesoft.controllers;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.stereotype.Controller;
导入org.springframework.web.bind.annotation.GetMapping;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.ResponseBody;
导入pl.Bluesoft.entities.Contract;
导入pl.Bluesoft.repositories.ContractsRepository;
@控制器
公共类主控制器{
@自动连线
私人合同替代合同替代合同;
@请求映射(“/”)
公共字符串showIndex(){
返回“索引”;
}
@GetMapping(“/all”)
public@ResponseBody Iterable getAllContracts(){
return contracts repository.findAll();
}
}
web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         id="WebApp_ID" version="3.1">

<display-name>ContractViewer</display-name>
    <context-param>
        <param-name/>
        <param-value/>
    </context-param>
    <context-param>
        <param-name/>
        <param-value/>
    </context-param>

    <servlet>
    <servlet-name>dispatcher</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>/WEB-INF/appContext.xml</param-value>
    </init-param>
    <load-on-startup>1</load-on-startup>
</servlet>

<servlet-mapping>
    <servlet-name>dispatcher</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

</web-app>

合同查看器
调度员
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/appContext.xml
1.
调度员
/
应用程序上下文:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="pl.Bluesoft" />


    <mvc:annotation-driven/>


</beans>
<jpa:repositories base-package="pl.Bluesoft.repositories" />

持久性xml:

<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence
             http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
             version="2.1">

    <persistence-unit name="myDatabase" transaction-type="RESOURCE_LOCAL">

        <properties>
            <property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver" />
            <property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost/BazaUmow" />
            <property name="javax.persistence.jdbc.user" value="postgres" />
            <property name="javax.persistence.jdbc.password" value="admin" />

            <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQL95Dialect"/>
            <property name="hibernate.hbm2ddl.auto" value="update" />

            <property name="hibernate.show_sql" value="true" />
            <property name="hibernate.format_sql" value="true" />
        </properties>

    </persistence-unit>

</persistence>

存储库未实例化。添加到应用程序上下文:

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
    xmlns:context="http://www.springframework.org/schema/context"
    xmlns:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="
        http://www.springframework.org/schema/beans
        http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/mvc
        http://www.springframework.org/schema/mvc/spring-mvc.xsd">

    <context:component-scan base-package="pl.Bluesoft" />


    <mvc:annotation-driven/>


</beans>
<jpa:repositories base-package="pl.Bluesoft.repositories" />

为了扫描包含存储库的类路径的包