將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
- 如何將您的 Eventlet 專案遷移到 Asyncio
- [譯] 將專案遷移到 Yarn 然後又遷回 npmYarnNPM
- [譯] 將一箇舊的大型專案遷移到 Python 3Python
- 重構案例:將純HTML/JS專案遷移到WebpackHTMLJSWeb
- Flutter專案遷移到Null Safety空安全FlutterNull
- 將nodejs遷移到D盤NodeJS
- 如何將 CentOS遷移到 AlmaLinux?CentOSLinux
- 將spfile從ASM裡遷移到檔案系統ASM
- JavaScript 專案遷移到 TypeScript 步驟以及遇到的問題JavaScriptTypeScript
- idea執行springboot開源專案GunsIdeaSpring Boot
- 開源一個功能完整的SpringBoot專案框架Spring Boot框架
- 案例:微服務從Java/SpringBoot遷移到Golang微服務JavaSpring BootGolang
- 擁抱 Docker!Laravel 老專案開發環境從 Homestead 遷移到 SailDockerLaravel開發環境AI
- Python 將所有 Bug 遷移到 GitHub 中PythonGithub
- 將ZooKeeper遷移到Kubernetes的新方法 - hubspot
- 舊 WCF 專案成功遷移到 asp.net core web apiASP.NETWebAPI
- webpack2的vuejs老專案遷移到vite2.0的記錄WebVueJSVite
- 記將一個大型客戶端應用專案遷移到 dotnet 6 的經驗和決策客戶端
- 使用SpringCloud將單體遷移到微服務SpringGCCloud微服務
- 將 flutter_web 遷移到 flutter1.9+FlutterWeb
- 我如何將部落格遷移到 Kubernetes(上)
- 我如何將部落格遷移到 Kubernetes(下)
- 將maven、gradle倉庫遷移到d盤MavenGradle
- Flutter 將您的外掛遷移到新的Android APIFlutterAndroidAPI
- Quarkus vs. SpringBoot - RedditSpring Boot
- OC與Swift混編專案遷移到Swift4.2小記Swift
- 一鍵將 Laf 遷移到 Sealos 雲開發(Sealaf),有手就行!
- 透過MySQL Workbench 將 SQL Server 遷移到GreatSQLMySqlServer
- SpringBoot基於Fly社群模板開源部落格專案Spring Boot
- 將自己的開源專案釋出到 Maven 中央倉庫Maven
- Ora2Pg:將Oracle遷移到PostgreSQL的免費工具OracleSQL
- 將你的應用遷移到 Python 3 的三個步驟Python
- 將ServiceLoader遷移到Java 9模組系統 - frankelJava
- 將 CentOS 8 作業系統遷移到 Oracle LinuxCentOS作業系統OracleLinux
- Flutter #03 將原有的 Flutter app 遷移到 Flutter 2.0FlutterAPP
- svn 遷移到gitGit
- 【遷移】SqlServer 遷移到 MySQL 方法ServerMySql