亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring boot + Hibernate - 技術問題

Spring boot + Hibernate - 技術問題

隔江千里 2023-09-20 17:01:45
我有一些關于 Spring Boot 和 Hibernate 的問題。我和一位開發人員討論過,他說他將他用 Spring Boot 開發的 Rest Api 編譯在 Jar 中,并使用 Spring Boot 提供的 tomcat 服務器并將 jar 部署在服務器上。但就我而言,我使用 war 打包并部署在我的 tomcat 服務器上,但他說它的性能較差。我不知道為什么,我問我,如果您使用 Spring boot 在微服務中開發 Resp Api 并且使用他的解決方案,您是否創建多個 tomcat 實例?關于hibernate,我使用HQL進行一些查詢,他說這是不好的方法,因為Sql注入很危險,這是真的嗎?我需要一些能給我建議的人的答案。抱歉,我的英語不太好,提前非常感謝您的回答。
查看完整描述

2 回答

?
慕運維8079593

TA貢獻1876條經驗 獲得超5個贊

Java云領域有兩個主要方向:

Java EE

  1. 創建一個 Docker 基礎鏡像,其中包括 Java EE 應用程序/Web 服務器(例如 Tomcat、WildFly、GlassFish 等)

  2. 創建一個(?。¦AR 文件

  3. 根據您的基礎映像創建一個 Docker 映像,將 WAR 文件部署到應用程序服務器

春季啟動

  1. 使用 Spring Boot Maven 插件創建單個 JAR 文件

  2. 創建執行 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 相同:不要將查詢與用戶的輸入串聯起來。始終使用某種帶有變量的準備好的語句來格式化用戶輸入。


查看完整回答
反對 回復 2023-09-20
?
夢里花落0921

TA貢獻1772條經驗 獲得超6個贊

如果您使用 Spring Boot,您或多或少會實現一個獨立的應用程序(即使它是一個 Web 應用程序),因此,是的,每個 Spring Boot 應用程序都會有一個自己的嵌入式 tomcat、jetty 等實例。SQL 注入與您如何部署應用程序的方式無關,它只是您如何創建 HQL 查詢的問題。

然而,這是一個有趣的討論。在我們公司,我們的做法相當老式,為我們的 Web 應用程序創建一個 WAR 文件,并將其部署在我們的 Glassfish 服務器上,其中多個其他 Web 應用程序在同一實例下運行。


查看完整回答
反對 回復 2023-09-20
  • 2 回答
  • 0 關注
  • 111 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號