Bean创建中的Spring Server问题

时间:2018-09-17 23:44:00

标签: java spring

我遇到一个问题,即在服务器启动时未正确将定义的存储库解释为Bean。具有@SpringBootApplication的类位于比定义的存储库更高的目录中,因此我无法找到为什么它没有配置。

@SpringBootApplication:

i = 0
for i in range(counterP):
    g4 = numpy.reshape(numpy.random.random_integers(0, 1, size=matrix_sizeP), (vertex_countP, vertex_countP))
    g5 = numpy.reshape(numpy.random.random_integers(0, 1, size=matrix_sizeP), (vertex_countP, vertex_countP))
    G4 = nx.Graph(g4)
    G5 = nx.Graph(g5)
    G4G5 = iso.GraphMatcher(G4,G5)
    isomP = G4G5.is_isomorphic()

    if isomP is True:
        ed = nx.number_of_edges(G4)
        print("Iteration", i, ":", ed, "edges")
        print(G4G5.mapping)
        i = i + 1
    else:
        g5 = numpy.reshape(numpy.random.random_integers(0, 1, size=matrix_sizeP), (vertex_countP, vertex_countP))
        G5 = nx.Graph(g5)
        isomP = G4G5.is_isomorphic()

存储库

package com.example.demo;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Date;
import java.util.Properties;

@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
    SpringApplication.run(DemoApplication.class, args);
    System.out.println("http://localhost:8080");
}
}

错误代码:

  

****************************应用程序开始失败**************** ***********

     

说明:

     

lab14.panoslab.Controllers.RegisterController中的字段userRepository   需要类型为'lab14.panoslab.Repositories.UserRepository'的bean   找不到。

     

操作:

     

考虑定义一个类型的bean   配置中的“ lab14.panoslab.Repositories.UserRepository”。

     

以退出代码1完成的过程

2 个答案:

答案 0 :(得分:0)

您确定您的类Account实现了接口User吗?

并尝试删除注释@Repository并在@EntityScan类中添加注释@EnableJpaRepositoriesDemoApplication

@SpringBootApplication
@EntityScan({"lab14.panoslab.Models"})    
@EnableJpaRepositories({"lab14.panoslab.Repositories"})
public class DemoApplication {...}

此外,我建议您将所有包重命名为小写并返回值List<Account>,而不是List<User>

答案 1 :(得分:0)

我确实遇到过类似的问题。我犯的错误是,我将控制器/存储库和其他组件包放在了Main Class包之外。因此,Spring Boot无法识别我的组件,

对于Ex:,主类软件包是 package com.example.demo;

控制器包,例如 package com.example.controller;

存储库软件包,例如 package com.example.repository;

以下是解决此问题的两种不同方法

在@ComponentScan中明确定义我的组件包,例如 @ComponentScan(basePackages =“ com.example.controller,com.example.repository”),其中包含必需组件的基本包。

否则,您可以在主软件包中创建Controller /存储库软件包。因此,您无需定义 @ComponentScan 以及全部。 例如,

主类软件包为 package com.example.demo;

控制器软件包,例如 package com.example.demo.controller;

存储库软件包,例如 package com.example.demo.repository;