【问题标题】:Spring Boot + SPring REST + Swagger + JPA +inmemory H2 DBSpring Boot + SPring REST + Swagger + JPA +内存 H2 DB
【发布时间】:2018-07-09 06:44:19
【问题描述】:

我正在使用 Spring Boot 开发 Spring REST。我首先将值硬编码为 DAOService,如下所示,一切正常

@Component
public class UserDAOService {

    static List<User> users = new ArrayList<>();
    static int userCount = 3;

    static {
        users.add(new User("adam", new Date(), 1));
        users.add(new User("eve", new Date(), 2));
        users.add(new User("joe", new Date(), 3));
    }

    public User saveUser(User user) {
        if (user.getId() == null) {
            user.setId(++userCount);
        }
        users.add(user);
        return user;
    }

    public List<User> findAll() {
        System.out.println("finding all users");
        return users;
    }

    public User findOne(int id) {

        for (User user : users) {
            if (user.getId() == id) {
                return user;
            }
        }
        return null;
    }

但后来我尝试集成 JPA 并将 bean 转换为实体,如下所示,起初我在创建名为 'documentationpluginsbootstrapper' 的 bean 时出错,但通过从 SwaggerConfig 类中删除 @Configuration 注释得到了解决。但后来它结束了另一个异常创建名为“repositorySearchController”的 bean 时出错 ..日志显示在末尾​​em>

    @ApiModel(description="all details about user")
    @Entity
    public class User {

        @Id
        @GeneratedValue
        private Integer id ;

        @Size(min=2,max=12,message="username should be atleast 2 characters")
        private String name;
        @Past
        private Date birthDate; 

        public User(String name, Date birthDate, Integer id) {
            super();
            this.name = name;
            this.birthDate = birthDate;
            this.id = id;
        }
        public User() {
            // TODO Auto-generated constructor stub
        } 
//setters and getters    
    }

日志:

org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为“repositorySearchController”的bean时出错...... spring-data-rest-webmvc-3.0.8.RELEASE.jar

需要输入来解决这个问题。

【问题讨论】:

  • 请发布控制器类
  • 请分享repositorySearchController类的代码
  • //@RestController public class UserResource { //@Autowired private UserDAOService daoService; //@GetMapping(path = "/users") public List getUsers() { return daoService.findAll(); }} 我评论了 annotationa bcz 它不允许我发表评论
  • 嗨@GarimaGupta,repositorySearchController 在 jar spring-data-rest-webmvc-3.0.8.RELEASE.jar 中
  • @JohnJoe ,我的控制器类是 //@RestController public class UserResource { //@Autowired private UserDAOService daoService; //@GetMapping(path = "/users") public List getUsers() { return daoService.findAll(); }} 我评论了注解 bcz 它不允许我发表评论

标签: java spring spring-boot spring-data-jpa spring-rest


【解决方案1】:

要连接到 H2 数据库,您应该将以下属性添加到 application.properties 文件:

spring.h2.console.enabled=true
spring.h2.console.path=/h2-console

spring.datasource.url=jdbc:h2:mem:test;DB_CLOSE_DELAY=-1;DB_CLOSE_ON_EXIT=FALSE
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.platform=h2
spring.datasource.initialize=true
spring.datasource.continue-on-error=true

您可以通过网址访问BD:http://localhost:8080/h2-console/

【讨论】:

  • 仍然无法获得 o/p。如果实体(User.java)与资源(UserResource.java)放在不同的包中,则构建失败,但如果我放在同一个包中,我可以连接到数据库并查看更改。但是如果我将实体移动到不同的包中,构建会失败。
  • 在这种情况下,您应该更新您的问题并添加有关当前情况的详细信息
猜你喜欢
  • 2019-07-27
  • 2017-01-16
  • 2021-10-12
  • 2020-10-23
  • 2021-08-28
  • 1970-01-01
  • 2018-02-05
  • 2020-01-04
  • 1970-01-01
相关资源
最近更新 更多