將SpringBoot PetClinic REST遷移到Quarkus的開源專案
SpringBoot PetClinic REST專案的GitHub儲存庫:https://github.com/spring-petclinic/spring-petclinic-rest
Quarkus遷移的專案的GitHub儲存庫:https://github.com/jonathanvila/spring-petclinic-rest/tree/quarkus
REST遷移
從Spring REST移到標準JAX-RS註釋。
- @RestController --> @Path
- @RequestMapping --> 將其分解為下一個註釋
- @GetMapping --> @GET
- @PostMapping --> @POST
- @PutMapping --> @PUT
- @DeleteMapping -> @DELETE
- @PathVariable -> @PathParam
安全遷移
將
- @PreAuthorize("hasRole(@roles.ROLE_ADMIN)") 替換為
- @RolesAllowed("ROLE_ADMIN")
新增Elytron擴充套件以在資料庫中保持安全性:quarkus-elytron-security-JDBC擴充套件。在properties.file上配置這個新的副檔名
CORS
在application.properties檔案中配置的CORS
指標
- 新增smallRye指標擴充套件
- 註釋每種方法(用於自定義指標)
- 在屬性檔案中啟用hibernate指標
驗證方法遷移
- 將Spring驗證器遷移到Hibernate驗證器
- 從@ControllerAdvice移至JAX-RS ExceptionMapper
OpenAPI檔案
- 新增副檔名“ openapi”
- 擴充套件應用程式類
本地快取遷移
- Spring使用預設的ConcurrentHashMap
- Caffeine使用ConcurrentLinkedHashMap
- 新增“快取”副檔名(Caffeine)並註釋該方法
- 在屬性檔案中配置每個快取行為
未遷移
- Spring JDBC查詢
- 沒有輔助方法可用於插入,更新
- 不等同於org.springframework.jdbc.core類
- 我們需要使用AGROAL重新實現所有功能
- JMX
- GraalVM定義不支援
遷移後效能比較:
Spring Boot Quarkus Hotspot Quarkus GraalVM 構建 48 MB 42 MB 97 MB 4.3 s 13 s 185 s 啟動 630 MB 251 MB 21 MB 6.8 s 2.6 s 0.462 s |
相關文章
- Quarkus入門:構建PetClinic REST API - Rafał BorowiecRESTAPI
- [譯] 將現有的 API 從 REST 遷移到 GraphQLAPIREST
- 將typescript+react的webpack專案遷移到parcelTypeScriptReactWeb
- [譯] 將專案遷移到 Yarn 然後又遷回 npmYarnNPM
- 【譯】將 Android 專案遷移到 Kotlin 語言AndroidKotlin
- 重構案例:將純HTML/JS專案遷移到WebpackHTMLJSWeb
- [譯] 將一箇舊的大型專案遷移到 Python 3Python
- 使用RAM將檔案系統遷移到ASMASM
- (原)將Oracle遷移到SQLServerOracleSQLServer
- 使用MyEclipse將HTML5移動專案遷移到PhoneGap(三)EclipseHTML
- 使用MyEclipse將HTML5移動專案遷移到PhoneGap(一)EclipseHTML
- 從SpringMVC遷移到SpringbootSpringMVCSpring Boot
- 將spfile從ASM裡遷移到檔案系統ASM
- 利用rman將本地資料檔案遷移到asmASM
- Flutter專案遷移到Null Safety空安全FlutterNull
- 如何將 CentOS遷移到 AlmaLinux?CentOSLinux
- 將表 從mysql 遷移到oracleMySqlOracle
- 將nodejs遷移到D盤NodeJS
- 將資料庫從ASM遷移到檔案系統資料庫ASM
- 將資料庫從檔案系統遷移到ASM資料庫ASM
- JavaScript 專案遷移到 TypeScript 步驟以及遇到的問題JavaScriptTypeScript
- 將我的部落格遷移到亞馬遜雲端(1)亞馬遜
- 將我的部落格遷移到亞馬遜雲端(2)亞馬遜
- oracle將控制檔案從裸裝置遷移到檔案系統Oracle
- 開源一個功能完整的SpringBoot專案框架Spring Boot框架
- 擁抱 Docker!Laravel 老專案開發環境從 Homestead 遷移到 SailDockerLaravel開發環境AI
- 微軟開源TypeScript編繹器 專案遷移至Github微軟TypeScriptGithub
- 利用RMAN將資料庫從檔案系統遷移到ASM資料庫ASM
- 將 flutter_web 遷移到 flutter1.9+FlutterWeb
- Python 將所有 Bug 遷移到 GitHub 中PythonGithub
- 將EJB 3應用程式遷移到GlassFish
- 舊 WCF 專案成功遷移到 asp.net core web apiASP.NETWebAPI
- 案例:微服務從Java/SpringBoot遷移到Golang微服務JavaSpring BootGolang
- idea執行springboot開源專案GunsIdeaSpring Boot
- 一鍵將 Laf 遷移到 Sealos 雲開發(Sealaf),有手就行!
- Quarkus vs. SpringBoot - RedditSpring Boot
- 記將一個大型客戶端應用專案遷移到 dotnet 6 的經驗和決策客戶端
- 將ORACLE資料庫資料檔案遷移到其他目錄(ZT)Oracle資料庫