日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

如何應對Spring框架有三個主要陷阱

來源: 責編: 時間:2024-06-19 15:36:47 146觀看
導讀Spring 有一些有助于開發過程的出色功能,但了解該框架的局限性和缺點至關重要。譯自Spring Framework Has Three Major Pitfalls — Here’s What To Do,作者 Jonathan Vila。Spring 是一個流行的框架——50%的開發人員

Spring 有一些有助于開發過程的出色功能,但了解該框架的局限性和缺點至關重要。zFc28資訊網——每日最新資訊28at.com

譯自Spring Framework Has Three Major Pitfalls — Here’s What To Do,作者 Jonathan Vila。zFc28資訊網——每日最新資訊28at.com

Spring 是一個流行的框架——50%的開發人員現在使用它,它非常適合創建獨立的生產級應用程序。借助其幫助開發過程的新類、接口和 API,開發人員必須學習以決定是否要在其編碼中使用它。這是因為 Spring Boot 的新功能使用不當會導致錯誤、錯誤配置和安全問題,從而影響代碼質量。zFc28資訊網——每日最新資訊28at.com

使用Spring 框架時,有三點重要事項需要注意。zFc28資訊網——每日最新資訊28at.com

事務操作

數據庫操作必須全部提交才能供其他連接使用。這意味著,對數據庫執行的每項操作,該過程都必須打開一個事務,更改數據并提交事務,或者在任何操作失敗時回滾事務。zFc28資訊網——每日最新資訊28at.com

Spring 可以通過@Transactional為方法添加注釋以創建代理,生成在代碼庫中無縫運行以管理事務的代碼。但是,您可能有多個方法調用鏈,其中一個操作對數據庫進行多次更改,并且為了清晰起見,這些更改必須拆分為多個方法。這就是事務傳播發生的地方。zFc28資訊網——每日最新資訊28at.com

通常,我們有一個帶有 @Transactional 注釋的入口點方法,該方法啟動事務。調用鏈中的其余方法不會指定注釋,這允許第一個方法執行整個提交。這是必需的默認傳播方法。如果沒有正在運行的事務,它將創建一個事務。zFc28資訊網——每日最新資訊28at.com

但現實往往比我們想象的要復雜。例如,假設您有屬于不同操作的方法,有時您的方法是唯一合適的操作。在這些調用鏈中,我們必須保持兼容的事務傳播,但 Spring 不會考慮自調用的事務規范。zFc28資訊網——每日最新資訊28at.com

那么,這意味著什么?當您在同一類中從一個方法調用另一個方法時,Spring 將使用“this”方法來引用接收方法。然后 Spring 生成代碼作為代理來處理無法執行的事務。zFc28資訊網——每日最新資訊28at.com

為避免這種情況,當在事務中可以執行其他方法的方法中,我們應該指定 @Transaction 注釋。zFc28資訊網——每日最新資訊28at.com

持久實體

Spring 的一個優點是它易于與持久層交互。為了使用類型化對象和屬性,Java 提供了一個 @Entity 注釋來表示關系表,Spring 提供了一個 @Document 注釋來表示 MongoDB 和 ElasticSearch 文檔。在這些情況下,Spring 可以使用元素中的信息并在對象域和數據庫域之間建立橋梁。zFc28資訊網——每日最新資訊28at.com

這里至關重要的是要理解,這些對象表示與數據庫中存儲元素直接轉換的數據對象,這意味著該對象攜帶的所有字段都將保存在數據庫中。Spring 能夠共享方法來生成 REST API 服務,這些服務在用戶向該服務器發出 HTTP 請求時執行。這些方法還允許使用實體或文檔作為 Spring 將從請求有效負載映射的參數。zFc28資訊網——每日最新資訊28at.com

為了防止攻擊者冒充用戶的安全問題,建議使用數據傳輸對象 (DTO)將來自用戶的信息轉換為實體或文檔。這將僅考慮必要的信息并對轉換進行清理。zFc28資訊網——每日最新資訊28at.com

Bean 定義

Spring 的主要功能是其依賴注入,它使用戶能夠定義將注入到其他對象及其生命周期中的 bean。借助此功能,類只需要知道它們的依賴關系是什么。它不需要了解如何以及何時必須實例化和刪除它們。zFc28資訊網——每日最新資訊28at.com

Spring 框架提供了一種 bean 發現機制,它通過掃描源代碼包來查找 bean 定義。Spring 上下文隨后根據配置實例化這些 bean。然而,這種強大的功能也帶來了責任。重要的是要意識到,此掃描機制可能會影響應用程序的整體性能,并可能導致在編碼時難以發現的運行時錯誤。為了避免這種情況,至關重要的是在應用程序中始終指定一個包作為 Spring bean 掃描的起點。zFc28資訊網——每日最新資訊28at.com

Spring 及其依賴注入框架在 bean 的使用者端提供了強大的注入機制。這使得 bean 實例非常易于使用,具有特定的生命周期,而無需擔心這些 bean 何時何地被創建或銷毀。為了避免在需要之前注入 bean(這可能會損害應用程序性能),建議不要使用@Autowired注解。相反,應盡可能晚地請求注入,即在通過參數注入需要時。這將指示 Spring 在創建依賴 bean 之前創建 bean。zFc28資訊網——每日最新資訊28at.com

最后的想法

Spring 提供了一些有助于開發過程的出色功能,但它也附帶了復雜的配置。了解 Spring 的局限性和缺點對于充分利用它至關重要,但這可能很困難。zFc28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-26-94853-0.html如何應對Spring框架有三個主要陷阱

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: 十分鐘了解 Golang 泛型

下一篇: 千萬級流量沖擊下,如何保證極致性能

標簽:
  • 熱門焦點
  • 掘力計劃第 20 期:Flutter 混合開發的混亂之治

    在掘力計劃系列活動第20場,《Flutter 開發實戰詳解》作者,掘金優秀作者,Github GSY 系列目負責人戀貓的小郭分享了Flutter 混合開發的混亂之治。Flutter 基于自研的 Skia 引擎
  • Flowable工作流引擎的科普與實踐

    一.引言當我們在日常工作和業務中需要進行各種審批流程時,可能會面臨一系列技術和業務上的挑戰。手動處理這些審批流程可能會導致開發成本的增加以及業務復雜度的上升。在這
  • 使用LLM插件從命令行訪問Llama 2

    最近的一個大新聞是Meta AI推出了新的開源授權的大型語言模型Llama 2。這是一項非常重要的進展:Llama 2可免費用于研究和商業用途。(幾小時前,swyy發現它已從LLaMA 2更名為Lla
  • 一個注解實現接口冪等,這樣才優雅!

    場景碼猿慢病云管理系統中其實高并發的場景不是很多,沒有必要每個接口都去考慮并發高的場景,比如添加住院患者的這個接口,具體的業務代碼就不貼了,業務偽代碼如下:圖片上述代碼有
  • 大廠卷向扁平化

    來源:新熵作者丨南枝 編輯丨月見大廠職級不香了。俗話說,兵無常勢,水無常形,互聯網企業調整職級體系并不稀奇。7月13日,淘寶天貓集團啟動了近年來最大的人力制度改革,目前已形成一
  • 阿里瓴羊One推出背后,零售企業迎數字化新解

    作者:劉曠近年來隨著數字經濟的高速發展,各式各樣的SaaS應用服務更是層出不窮,但本質上SaaS大多局限于單一業務流層面,對用戶核心關切的增長問題等則沒有提供更好的解法。在Saa
  • 滴滴違法違規被罰80.26億 共存在16項違法事實

    滴滴違法違規被罰80.26億 存在16項違法事實開始于2121年7月,歷經一年時間,網絡安全審查辦公室對“滴滴出行”網絡安全審查終于有了一個暫時的結束。據“網信
  • 榮耀Magicbook V 14 2021曙光藍版本正式開售,擁有觸摸屏

    榮耀 Magicbook V 14 2021 曙光藍版本正式開售,搭載 i7-11390H 處理器與 MX450 顯卡,配備 16GB 內存與 512GB SSD,重 1.48kg,厚 14.5mm,具有 1.5mm 鍵盤鍵程、
  • 華為舉行春季智慧辦公新品發布會 首次推出電子墨水屏平板

    北京時間2月27日晚,華為在巴塞羅那舉行春季智慧辦公新品發布會,在海外市場推出之前已經在中國市場上市的筆記本、平板、激光打印機等辦公產品,并首次推出搭載
Top 主站蜘蛛池模板: 三明市| 咸丰县| 昭通市| 辽宁省| 高阳县| 车致| 广平县| 绥中县| 宜宾市| 青龙| 古交市| 精河县| 鹤峰县| 固安县| 大冶市| 香港 | 清流县| 德江县| 腾冲县| 阿瓦提县| 清水河县| 屯昌县| 凯里市| 富平县| 东乌珠穆沁旗| 三亚市| 崇义县| 曲阳县| 舞阳县| 江口县| 赫章县| 东至县| 娱乐| 屏东市| 增城市| 吴堡县| 民丰县| 兴和县| 华宁县| 方正县| 兴国县|