8 days ago

這樣輸出的 jar 檔就不會包含開發環境的配置了

build.gradle
jar {
    from sourceSets.main.output
    exclude('application-dev.yml')
}
 
10 days ago
# -*- mode: ruby -*-
# vi: set ft=ruby :

datadisk1 = '.\data_disk1.vdi'

Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.synced_folder ".", "/vagrant", disabled: true

  config.vm.provider "virtualbox" do |vb|
    vb.gui = false
    vb.cpus = 1
    vb.memory = "1024"
    vb.name = "Ceph-Admin"
    
    unless File.exist?(datadisk1)
      vb.customize ['createhd', '--filename', datadisk1, '--size', 1 * 1024]
    end
    
    vb.customize ['storageattach', :id, '--storagectl', 'IDE', '--port', 1, '--device', 0, '--type', 'hdd', '--medium', datadisk1]
    
    # Adding a SATA controller that allows 4 hard drives
    #vb.customize ['storagectl', :id, '--name', 'SATA Controller', '--add', 'sata', '--portcount', 4]
    # Attaching the disks using the SATA controller
    #vb.customize ['storageattach', :id, '--storagectl', 'SATA Controller', '--port', 0, '--device', 0, '--type', 'hdd', '--medium', datadisk1]
    
  end
end
 
29 days ago

新版本的 vagrant 配置有點不同,所以想用舊的配置檔跑 VM 裡面的 Docker 會失敗

新的要加上
force_host_vm = true

為什麼要加就是自己看一下說明吧,反正就改了
https://www.vagrantup.com/docs/docker/configuration.html#force_host_vm

Read on →
 
29 days ago

前兩篇有講到 entity 還可以進一步定義關聯的資源 URL,讓前端可以依照定義來取得資源,而不是一個寫死的網址,避免萬一 URL 有變動的話 APP 也得必須改版。

就像 links 的效果
前端就可以固定抓取 project 的 value 就可以取得 project 的相關資訊,而不必關心 project url 的變動

{  
   "projectId":"QpbR7viWdy",
   "projectName":"123",
   "score":72,
   "createdDate":null,
   "createdBy":null,
   "lastModifiedDate":"2017-07-20T09:24:28Z",
   "lastModifiedBy":null,
   "_links":{  
      "self":{  
         "href":"http://localhost:8080/scoreProjects/n5NehJba7k"
      },
      "scoreProject":{  
         "href":"http://localhost:8080/scoreProjects/n5NehJba7k"
      },
      "project":{  
         "href":"http://localhost:8080/projects/QpbR7viWdy"
      },
      "scoreProjectMembers":{  
         "href":"http://localhost:8080/scoreProjectMembers/search/findByProjectId?projectId=QpbR7viWdy"
      },
      "projectMembers":{  
         "href":"http://localhost:8080/api/project/QpbR7viWdy/members"
      }
   }
}
Read on →
 
about 1 month ago

Spring 中使用 @Valid 驗證後回覆的格式並不是 json ,其實很不好處理 ,目前是 定義 ControllerAdvice 來做一個轉換處理

還有另一個是 HystrixBadRequestException ,因為有用到 spring-cloud-feign 的功能,自然是支援斷路保護機制 但是這個HystrixBadRequestException 好像沒辦法把對方的錯誤訊息放進去我們的回覆資料內,對方只會看到 message=BadRequest 之類的,所以做一下處理

Read on →
 
about 1 month ago

有關如何自訂 Page 物件與仿照 SpringDataRest 格式
為什麼要仿照? 主要原因

  • SpringDataRest 提供的是 HATEOAS (Hypermedia As The Engine Of Application State)
  • org.springframework.data.domain.Page 轉成 json 跟 SpringDataRest 不一樣

HATEOAS 的入門說明

Read on →
 
3 months ago

寫Spring還真的很少自爆就停止服務了,大概都是被 OS 層級終止(記憶體吃太多也是事實)
但線上服務還是加個服務監控怕真的掛了沒人知,台灣人用line比較多那再加個Line通知比較即時吧

Read on →
 
3 months ago

有些舊系統前端是傳統 apache + ajp13 接後面 Tomcat 服務
這個時候可以讓 springboot 也接收這種 protocol

Read on →
 
3 months ago

因為要飛大陸所以又要準備 VPN 了,不過 PPTP 已經無法在 IOS 上使用~~只好研究 shadowsocks 怎麼搞啦

Read on →
 
5 months ago

Swagger 在工程師或測試方面幫助很大,但有些人員非工程背景,拿到 Jar 檔也不會執行,也就看不到 API 規格,所以還是需要一份文件,這時候我們既然都定義好 Swagger 了,直接用來輸出就最方便

流程來說是 測試程式產出 adoc 檔 -> plugins org.asciidoctor.convert 轉換成 html 等其他格式

Read on →