我一直在研究類似的工作。這是我們正在做的處理它。
我們有一個Web客戶端,對於瘦客戶端來說,需要來自後端數據庫的信息。它通過訪問一個REST風格的Web服務來完成此操作,該服務將進行數據庫調用並將信息以JSON包的形式返回給客戶端。
所使用的工具:
所有這些工具都非常適合開發Web服務。 Roo允許快速開發和簡單的方法將項目的所有元素組合在一起。它不僅僅支持SqlServer,Hibernate和Tomcat,並且不需要IDE(即使Spring Tool Suite具有內置的GUI外殼),但它依賴於Maven。我絕對喜歡它。它使用了AspectJ的大部分魔力,但是一旦你過去了AspectJ的神祕感,它就變得非常直觀。
繼承人一個很好的教程爲小豆:http://docs.spring.io/spring-roo/reference/html/beginning.html
希望這有助於!
編輯: 這是袋鼠與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請求:
@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)套件。它可以用於原型應用程序。你需要做一些編程,但它會少一些。
讓我知道這是否有助於澄清事情!
來源
2013-10-29 16:13:13
Vae
這真的很酷,但我已經在java SE中準備好了瘦客戶端,我需要將邏輯和SQL語句移到服務器端,所以客戶端只有GUI。請求將拋出Web服務器來從中得到響應。我不想創建一個Web應用程序,只需要創建一個例如將JSON返回給我的瘦客戶機的servlet。 –
這基本上就是我們正在做的。 Web服務沒有GUI,它只處理HTTP請求,例如客戶端會發送一個http GET到「http:// host/service /」,服務將返回一個JSON包中的任何需要返回的包。服務本身只包含用於訪問後端數據庫的邏輯。 你看過使用RESTful Web服務的服務器端應用程序嗎? – Vae
是的,我讀了RESTful&瞭解它,也是JSON。所以JSON將是我從數據庫獲取數據的方式,但是INSERT,UPDATE,DELETE呢? –