【问题标题】:Integrating Spring Boot Hibernate JPA with Standalone Java Application将 Spring Boot Hibernate JPA 与独立 Java 应用程序集成
【发布时间】:2018-09-24 15:43:44
【问题描述】:

我创建了一个使用 Spring Data JPA Hibernate 提供程序的 Spring Boot 应用程序。该应用程序使用 spring jpa 存储库对我的数据库进行基本的 crud 操作。使用存储库接口创建了一个服务类来访问数据库。

现在的问题是我想从另一个不是在 Spring 中创建的独立 Java 应用程序调用这些数据库操作。 我想在这个应用程序中调用 Spring Boot 存储库,而不是使用应用程序中使用的 JDBC。

我不知道如何整合它。

【问题讨论】:

标签: java spring hibernate jdbc spring-data-jpa


【解决方案1】:

您的 Spring Boot 应用程序是 Web 应用程序吗?如果是,您将其公开为 REST 服务,并使用 Jersey 客户端或 REST 模板从您的独立应用程序中使用此服务来更新您的数据库记录。

例如PUT 实现可能如下所示。

@RestController
public class ExampleController {

    @Autowired
    private ExampleRepository repository

    @PutMapping("/api/address/{id}")
    public String updateRecord(@RequestBody Address address) {
        repository.save(address);
        return new ResponseEntity<String>(httpStatus);    

}

您的客户端(独立 Java 类)可以使用 REST 模板(或任何 REST 客户端)来使用此 API,如下所示。

public class PutDemo {
 public static void main(String args[]) {
 RestTemplate restTemplate = new RestTemplate();
String url = "http://localhost:8080/api/address/{id}/";
Map<String, String> map = new HashMap<String, String>();
 map.put("id", "100");
 map.put("name", "Roy");
 Address address = new Address("Henrico", "Richmond","VA");
restTemplate.put(url, address, map);
}
}

如果您的 Spring Boot 应用程序是非 Web 应用程序,您可以使用 fat jar 作为独立类中的依赖项来执行数据库操作。

【讨论】:

    【解决方案2】:

    如果你可以修改spring boot应用源码,你可以给spring应用添加spring data rest依赖,spring boot会将你原来的API暴露为RESTful API,然后你就可以在你的客户端应用中通过http访问这个API .更多信息可以看the spring data jpa documentation.

    【讨论】:

      猜你喜欢
      • 2012-09-20
      • 2015-07-09
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      • 2016-07-04
      • 1970-01-01
      • 1970-01-01
      • 2021-05-24
      相关资源
      最近更新 更多