2 回答

TA貢獻1876條經驗 獲得超5個贊
Java云領域有兩個主要方向:
Java EE:
創建一個 Docker 基礎鏡像,其中包括 Java EE 應用程序/Web 服務器(例如 Tomcat、WildFly、GlassFish 等)
創建一個(?。¦AR 文件
根據您的基礎映像創建一個 Docker 映像,將 WAR 文件部署到應用程序服務器
春季啟動:
使用 Spring Boot Maven 插件創建單個 JAR 文件
創建執行 JAR 文件的 Docker 映像
我想您也可以混合使用這兩種方法(創建 Spring Boot WAR 文件),但單個 JAR 文件方法在 Spring Boot 中更為常見(我目前正在使用這種方法)。
Adam Bien 等一些 Java EE 專家提倡第一種方法(更少的依賴項、更小的 WAR 文件、更小的 Docker 映像、更標準的 API(盡管“標準”的含義目前隨著從 Java EE 到 Jakarta EE 的過渡而發生變化)。
我無法告訴你哪一個的性能更高。無論哪種方式,每個 Docker 鏡像都會啟動一個服務器。
關于 Hibernate 和 SQL 注入:我沒有使用 HQL,而是使用 JPQL,但最終它或多或少與 JDBC 相同:不要將查詢與用戶的輸入串聯起來。始終使用某種帶有變量的準備好的語句來格式化用戶輸入。

TA貢獻1772條經驗 獲得超6個贊
如果您使用 Spring Boot,您或多或少會實現一個獨立的應用程序(即使它是一個 Web 應用程序),因此,是的,每個 Spring Boot 應用程序都會有一個自己的嵌入式 tomcat、jetty 等實例。SQL 注入與您如何部署應用程序的方式無關,它只是您如何創建 HQL 查詢的問題。
然而,這是一個有趣的討論。在我們公司,我們的做法相當老式,為我們的 Web 應用程序創建一個 WAR 文件,并將其部署在我們的 Glassfish 服務器上,其中多個其他 Web 應用程序在同一實例下運行。
添加回答
舉報