将Spring Boot Hibernate JPA与独立Java应用程序集成

时间:2018-04-14 12:06:58

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

我创建了一个使用Spring Data JPA Hibernate提供程序的Spring启动应用程序。这个应用程序使用spring jpa存储库对我的数据库进行基本的crud操作。使用存储库接口修复服务类以命中数​​据库。

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

我不知道如何整合这个。

2 个答案:

答案 0 :(得分:0)

您的春季启动应用程序是否为Web应用程序?如果是,则将此公开为REST服务,并使用Jersey Client或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模板(或任何其他客户端)来使用此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作为独立类中的依赖项来执行数据库操作。

答案 1 :(得分:0)

如果您可以修改spring boot应用程序源代码,则可以将spring数据rest依赖项添加到spring应用程序中,spring boot会将原始API公开为RESTful API,然后您可以通过客户端应用程序中的http访问此API 。有关详细信息,请参阅https://www.codeply.com/go/fURhmFAJiC