Spring Boot 仍然是最先進的嗎? - ralph
Spring Boot構建可啟動伺服器的原有優勢在當今容器環境時代似乎越來越成為劣勢。您失去了靈活性,並冒著變得非常依賴庫的風險,您作為開發人員無法監督其影響。相比之下,當今的現代應用程式伺服器提供了容器技術的使用,使您能夠在開發過程中使用類似生產的伺服器系統。今天圍繞你的微服務構建一個可啟動的伺服器已經沒有意義了。
捆綁庫的危險性最近在 Log4j 錯誤中變得清晰起來。像這樣一個簡單而典型的 Spring Boot 依賴項……
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-log4j2</artifactId> </dependency> |
可能導致您的最終應用程式出現安全漏洞。由於 Log4j 庫現在是您構建的一部分。要更新此依賴項,您需要更新程式碼並重建和推出Spring Boot應用程式。
相比之下,在Jakarta EE 中,您永遠不會針對特定實現構建程式碼,而只會針對介面構建程式碼。這意味著您的程式碼以及最終的人工製品永遠不會對特定實現產生硬編碼依賴。在具體示例中,您只需更改執行時環境,無需更新或重建程式碼。這意味著對於像 Kubernetes 這樣的容器環境,您只需更新映象版本並重新啟動容器。
Spring Boot構建了一個包含所有必要庫的可引導工件,併為您提供了可引導伺服器。不需要額外的執行時或應用程式伺服器。這使得Spring Boot對開發人員如此有吸引力,並且是Spring Boot成功的最重要概念。但是這個概念是在 7 年多以前引入的。那個時候安裝應用伺服器很痛苦——尤其是對開發人員來說,而使用 Spring Boot,開發人員只需幾個簡單的步驟即可設定簡單微服務的執行版本。
但是,今天我們已經確立了容器環境的概念。每個開發人員都可以使用一個簡單的 Docker 命令啟動任何型別的伺服器或執行時環境。在容器環境中啟動像Payara、Wildfly或OpenLiberty這樣的現代應用程式伺服器只需幾秒鐘,而部署微服務只需幾秒鐘。例如,要將您的微服務與最新的 Wildfly Docker 映像捆綁在一起,Dockerfile 如下所示:
FROM jboss/wildfly ADD my-app.war /opt/jboss/wildfly/standalone/deployments/ |
可以在幾秒鐘內將微服務部署到不同的環境中。這為您的執行時環境提供了更大的靈活性。
相關文章
- Guix:最先進的作業系統?GUI作業系統
- Pnpm: 最先進的包管理工具NPM
- StarCoder: 最先進的程式碼大模型大模型
- Spring Boot(二十):使用 spring-boot-admin 對 Spring Boot 服務進行監控Spring Boot
- 你真的理解 Spring Boot 專案中的 parent 嗎?Spring Boot
- spring-boot-admin對spring-boot專案進行監控Springboot
- 最先進的三維建模解決方案,速看!
- Spring Boot(五):Spring Boot Jpa 的使用Spring Boot
- Spring Boot(十一):Spring Boot 中 MongoDB 的使用Spring BootMongoDB
- Spring Boot(三):Spring Boot 中 Redis 的使用Spring BootRedis
- Spring Boot整合Spring Cloud Vault進行安全儲存Spring BootCloud
- Spring Boot:Spring Boot配置MybatisSpring BootMyBatis
- Spring Boot 到底是怎麼執行的,你知道嗎?Spring Boot
- Spring Boot到底是怎麼執行的,你知道嗎?Spring Boot
- Spring Boot使用JWT進行token驗證Spring BootJWT
- Spring Boot無法對Service進行注入Spring Boot
- 使用 Spring Boot 進行單元測試Spring Boot
- OAuth2密碼模式已死,最先進的Spring Cloud認證授權方案在這裡OAuth密碼模式SpringCloud
- spring boot 版本由 2 升級到 3 ,需要修改程式碼嗎? 也就是說spring boot 3 是否相容 spring boot 2 所寫的程式碼Spring Boot
- Spring Boot整合Spring Data JPA進行資料庫操作Spring Boot資料庫
- Spring Boot整合Spring Cloud Commons進行公共元件管理Spring BootCloud元件
- Spring Boot整合Spring Cloud Release進行版本釋出管理Spring BootCloud
- Linux上最先進的免費賽車遊戲:StuntRally 2.4Linux遊戲
- 22 歲的 Postgres,可能是史上最先進的資料庫資料庫
- Spring Boot (十三): Spring Boot 小技巧Spring Boot
- spring boot 使用redis進行釋出訂閱Spring BootRedis
- Spring Boot:Spring Boot配置SwaggerSpring BootSwagger
- Spring Boot 2.0(八):Spring Boot 整合 MemcachedSpring Boot
- Spring Boot 參考指南(Spring Boot文件)Spring Boot
- Spring Boot學習6:Spring Boot JDBCSpring BootJDBC
- Spring Boot(十八):使用 Spring Boot 整合 FastDFSSpring BootAST
- Jeecg-Boot Spring BootSpring Boot
- Spring BootSpring Boot
- Gradle進階:1: 結合spring boot進行web開發GradleSpring BootWeb
- Spring Boot系列(四):Spring Boot原始碼解析Spring Boot原始碼
- Spring Boot系列(一):Spring Boot快速開始Spring Boot
- Spring Boot系列(一):Spring Boot 入門篇Spring Boot
- Spring Boot學習(一)——Spring Boot介紹Spring Boot