我在工作中一直在做类似的事情。这是我们正在做的处理它。
我们有一个 Web 客户端,类似于您的瘦客户端,它需要来自后端数据库的信息。它通过访问 RESTful Web 服务来实现这一点,该服务将进行数据库调用并将信息以 JSON 包的形式返回给客户端。
使用的工具:
所有这些工具都可以很好地协同工作以开发 Web 服务。Roo 允许快速开发和简单的方法将项目的所有元素联系在一起。它不仅可以与 SqlServer、hibernate 和 Tomcat 一起使用,而且不需要 IDE(尽管 Spring Tool Suite 具有内置的 GUI shell),但它依赖于 Maven。我非常喜欢它。它使用 AspectJ 来实现它的大部分魔力,但是一旦你摆脱了 AspectJ 的神秘,它就会变得非常直观。
这是 Roo 的一个很好的教程:http: //docs.spring.io/spring-roo/reference/html/beginning.html
希望这可以帮助!
编辑:这是 Roo 与 hibernate 将创建的存储库
域实体:
@RooJavaBean
@RooToString
@RooJpaEntity(table = "Example")
@RooJson
public class Example {
private String name = "default";
public Example(String name){
this.name = name;
}
}
存储库:
package com.example.repositories;
import org.springframework.roo.addon.layers.repository.jpa.RooJpaRepository;
@RooJpaRepository(domainType = Example.class)
public interface ExampleRepository {
}
一旦你有了这些,你就可以创建一个能够像这样执行 HTTP 请求的 Controller 类:
@RooWebJson(jsonObject = Example.class)
@Controller
@RequestMapping("/example/")
public class ExampleController {
@Resource
ExampleRepository exampleRepo;
@RequestMapping(method = RequestMethod.PUT, value ="/{name}")
public void putExample(@PathVariable("name") String name) {
exampleRepo.save(new Example(name));
}
}
putExample()
通过向“http://{host}/example/somename”发送一个 Htpp PUT 请求来调用该方法。RequestMapping 有更多选项,例如请求中包含的特定标头。来自请求的 JSON/xml 也可以交给服务以供方法使用。
添加新查询可以这样完成:
@Query("select * from Example e where e.name = ?1)
List<Example> getAllByName(String name);
将此方法添加到存储库类将为您提供一个新的 Sql 查询。注意:查询是用选择语言的 JPA 编写的。这是 Hibernate 的做法。
这里有一些与 RESTful 服务相关的约定。例如,Http PUT 和 POST 应该只用于 Sql UPDATE 或 INSERT 查询,Http GET 应该用于 Sql SELECT,Http DELETE 应该用于 Sql DELETE 等,但这取决于 Web 服务设计者。
我应该澄清一下,Roo 是一个快速应用程序开发 (RAD) 工具包。它可用于原型应用程序。您将需要进行一些编程,但会更少。
让我知道这是否有助于澄清事情!