如何從資料庫服務讀取資料
阿新 • • 發佈:2018-12-17
1:背景
在從資料庫服務data
讀取(以下簡稱data)之前,首先需要確保自己的服務(假設服務名為fegin-demo
)是正常能向Eureka註冊中心註冊的,註冊步驟如下:
- 將
src/main/resource
下的application.yml
檔案內容全部刪除,然後新增下面程式碼 備註: 埠號具體請詢問快樂博或者我,服務名自己定
eureka:
client:
serviceUrl:
defaultZone: 註冊中心地址
server:
port: 埠號
spring:
application:
name: fegin-demo
- 找到主啟動類FeginDemoApplication.java(在
src/main/java/com.hust.fegindemo
@EnableDiscoveryClient
@SpringBootApplication
- 仍在該類下,右鍵 - run as - java application ,啟動類,如果出現下圖,則表明執行成功
- 然後瀏覽器訪問
註冊中心地址
如下圖可以看到註冊成功了 其中,1為你自己的服務,2為資料庫服務 5:點選上圖的 3,會出現類似下圖的內容,這就是在你的服務中呼叫資料庫服務需要的內容: method表示讀取的方式 path為訪問路徑
2:配置Fegin客戶端
假設我們現在就想在config-demo
服務中完成上圖 describe 內容,具體步驟如下:
- 在pom.xml中新增下面依賴(記得放到dependencies標籤中)
<!-- Fegin -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-feign</artifactId>
</dependency>
-
在主啟動類上新增這個註解
@EnableFeignClients
表明這是Fegin的客戶端 -
將
WdsStRsvrRParmVO
類(找我要)複製到main/vo
WdsStRsvrREntity
複製到main/entity
包下。複製後請記得檢查下包的匯入關係。 備註:如果在Entity類中,發現import javax.persistence.*出現錯誤,在pom.xml中新增下面依賴並重新整理就可以匯入了。
<dependency>
<groupId>javax.persistence</groupId>
<artifactId>persistence-api</artifactId>
<version>1.0</version>
</dependency>
- 接下來,在main下新建包config,然後新建介面
DataClient
,並按照下面的格式寫好介面
/這裡不用改
@FeignClient(name = "data")
public interface DataClient {
//雙引號裡對應上圖的path
@PostMapping("/wdsstrsvrr/listByIdAndTime")
//WdsStRsvrRParmVO 對應上圖的 input
public List<WdsStRsvrREntity> listByIdAndTime(@RequestBody WdsStRsvrRParmVO wdsStRsvrRParmVO);
}
3 讀取資料
接下來,假設我們需要在 TestWd
類中使用WdsStRsvrREntity
,具體步驟如下
- 先在Test新寫一個全域性變數如下
@Autowired
private DataClient dataClient;
- 在需要的
WdsStRsvrREntity
的方法中,直接寫
WdsStRsvrRParmVO ws =new WdsStRsvrRParmVO(id,startTime,endTime);
List<WdsStRsvrREntity> = dataClient.listByIdAndTime(ws);