AVt天堂网 手机版,亚洲va久久久噜噜噜久久4399,天天综合亚洲色在线精品,亚洲一级Av无码毛片久久精品

當(dāng)前位置:首頁(yè) > 科技  > 軟件

如何應(yīng)對(duì)Spring框架有三個(gè)主要陷阱

來(lái)源: 責(zé)編: 時(shí)間:2024-06-19 15:36:47 137觀看
導(dǎo)讀Spring 有一些有助于開(kāi)發(fā)過(guò)程的出色功能,但了解該框架的局限性和缺點(diǎn)至關(guān)重要。譯自Spring Framework Has Three Major Pitfalls — Here’s What To Do,作者 Jonathan Vila。Spring 是一個(gè)流行的框架——50%的開(kāi)發(fā)人員

Spring 有一些有助于開(kāi)發(fā)過(guò)程的出色功能,但了解該框架的局限性和缺點(diǎn)至關(guān)重要。2bk28資訊網(wǎng)——每日最新資訊28at.com

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

Spring 是一個(gè)流行的框架——50%的開(kāi)發(fā)人員現(xiàn)在使用它,它非常適合創(chuàng)建獨(dú)立的生產(chǎn)級(jí)應(yīng)用程序。借助其幫助開(kāi)發(fā)過(guò)程的新類、接口和 API,開(kāi)發(fā)人員必須學(xué)習(xí)以決定是否要在其編碼中使用它。這是因?yàn)?Spring Boot 的新功能使用不當(dāng)會(huì)導(dǎo)致錯(cuò)誤、錯(cuò)誤配置和安全問(wèn)題,從而影響代碼質(zhì)量。2bk28資訊網(wǎng)——每日最新資訊28at.com

使用Spring 框架時(shí),有三點(diǎn)重要事項(xiàng)需要注意。2bk28資訊網(wǎng)——每日最新資訊28at.com

事務(wù)操作

數(shù)據(jù)庫(kù)操作必須全部提交才能供其他連接使用。這意味著,對(duì)數(shù)據(jù)庫(kù)執(zhí)行的每項(xiàng)操作,該過(guò)程都必須打開(kāi)一個(gè)事務(wù),更改數(shù)據(jù)并提交事務(wù),或者在任何操作失敗時(shí)回滾事務(wù)。2bk28資訊網(wǎng)——每日最新資訊28at.com

Spring 可以通過(guò)@Transactional為方法添加注釋以創(chuàng)建代理,生成在代碼庫(kù)中無(wú)縫運(yùn)行以管理事務(wù)的代碼。但是,您可能有多個(gè)方法調(diào)用鏈,其中一個(gè)操作對(duì)數(shù)據(jù)庫(kù)進(jìn)行多次更改,并且為了清晰起見(jiàn),這些更改必須拆分為多個(gè)方法。這就是事務(wù)傳播發(fā)生的地方。2bk28資訊網(wǎng)——每日最新資訊28at.com

通常,我們有一個(gè)帶有 @Transactional 注釋的入口點(diǎn)方法,該方法啟動(dòng)事務(wù)。調(diào)用鏈中的其余方法不會(huì)指定注釋,這允許第一個(gè)方法執(zhí)行整個(gè)提交。這是必需的默認(rèn)傳播方法。如果沒(méi)有正在運(yùn)行的事務(wù),它將創(chuàng)建一個(gè)事務(wù)。2bk28資訊網(wǎng)——每日最新資訊28at.com

但現(xiàn)實(shí)往往比我們想象的要復(fù)雜。例如,假設(shè)您有屬于不同操作的方法,有時(shí)您的方法是唯一合適的操作。在這些調(diào)用鏈中,我們必須保持兼容的事務(wù)傳播,但 Spring 不會(huì)考慮自調(diào)用的事務(wù)規(guī)范。2bk28資訊網(wǎng)——每日最新資訊28at.com

那么,這意味著什么?當(dāng)您在同一類中從一個(gè)方法調(diào)用另一個(gè)方法時(shí),Spring 將使用“this”方法來(lái)引用接收方法。然后 Spring 生成代碼作為代理來(lái)處理無(wú)法執(zhí)行的事務(wù)。2bk28資訊網(wǎng)——每日最新資訊28at.com

為避免這種情況,當(dāng)在事務(wù)中可以執(zhí)行其他方法的方法中,我們應(yīng)該指定 @Transaction 注釋。2bk28資訊網(wǎng)——每日最新資訊28at.com

持久實(shí)體

Spring 的一個(gè)優(yōu)點(diǎn)是它易于與持久層交互。為了使用類型化對(duì)象和屬性,Java 提供了一個(gè) @Entity 注釋來(lái)表示關(guān)系表,Spring 提供了一個(gè) @Document 注釋來(lái)表示 MongoDB 和 ElasticSearch 文檔。在這些情況下,Spring 可以使用元素中的信息并在對(duì)象域和數(shù)據(jù)庫(kù)域之間建立橋梁。2bk28資訊網(wǎng)——每日最新資訊28at.com

這里至關(guān)重要的是要理解,這些對(duì)象表示與數(shù)據(jù)庫(kù)中存儲(chǔ)元素直接轉(zhuǎn)換的數(shù)據(jù)對(duì)象,這意味著該對(duì)象攜帶的所有字段都將保存在數(shù)據(jù)庫(kù)中。Spring 能夠共享方法來(lái)生成 REST API 服務(wù),這些服務(wù)在用戶向該服務(wù)器發(fā)出 HTTP 請(qǐng)求時(shí)執(zhí)行。這些方法還允許使用實(shí)體或文檔作為 Spring 將從請(qǐng)求有效負(fù)載映射的參數(shù)。2bk28資訊網(wǎng)——每日最新資訊28at.com

為了防止攻擊者冒充用戶的安全問(wèn)題,建議使用數(shù)據(jù)傳輸對(duì)象 (DTO)將來(lái)自用戶的信息轉(zhuǎn)換為實(shí)體或文檔。這將僅考慮必要的信息并對(duì)轉(zhuǎn)換進(jìn)行清理。2bk28資訊網(wǎng)——每日最新資訊28at.com

Bean 定義

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

Spring 框架提供了一種 bean 發(fā)現(xiàn)機(jī)制,它通過(guò)掃描源代碼包來(lái)查找 bean 定義。Spring 上下文隨后根據(jù)配置實(shí)例化這些 bean。然而,這種強(qiáng)大的功能也帶來(lái)了責(zé)任。重要的是要意識(shí)到,此掃描機(jī)制可能會(huì)影響應(yīng)用程序的整體性能,并可能導(dǎo)致在編碼時(shí)難以發(fā)現(xiàn)的運(yùn)行時(shí)錯(cuò)誤。為了避免這種情況,至關(guān)重要的是在應(yīng)用程序中始終指定一個(gè)包作為 Spring bean 掃描的起點(diǎn)。2bk28資訊網(wǎng)——每日最新資訊28at.com

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

最后的想法

Spring 提供了一些有助于開(kāi)發(fā)過(guò)程的出色功能,但它也附帶了復(fù)雜的配置。了解 Spring 的局限性和缺點(diǎn)對(duì)于充分利用它至關(guān)重要,但這可能很困難。2bk28資訊網(wǎng)——每日最新資訊28at.com

本文鏈接:http://www.tebozhan.com/showinfo-26-94853-0.html如何應(yīng)對(duì)Spring框架有三個(gè)主要陷阱

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。郵件:2376512515@qq.com

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

下一篇: 千萬(wàn)級(jí)流量沖擊下,如何保證極致性能

標(biāo)簽:
  • 熱門焦點(diǎn)
  • Find N3入網(wǎng):最高支持16+1TB

    OPPO將于近期登場(chǎng)的Find N3折疊屏目前已經(jīng)正式入網(wǎng),型號(hào)為PHN110。本次Find N3在外觀方面相比前兩代有很大的變化,不再是小號(hào)的橫向折疊屏,而是跟別的廠商一樣采用了較為常見(jiàn)的
  • 太卷!Redmi MAX 100英寸電視便宜了:12999元買Redmi史上最大屏

    8月5日消息,從小米商城了解到,Redmi MAX 100英寸巨屏電視日前迎來(lái)官方優(yōu)惠,到手價(jià)12999元,比發(fā)布價(jià)便宜了7000元,在大屏電視市場(chǎng)開(kāi)卷。據(jù)了解,Redmi MAX 100
  • 慕巖炮轟抖音,百合網(wǎng)今何在?

    來(lái)源:價(jià)值研究所 作者:Hernanderz“難道就因?yàn)樽约旱囊粋€(gè)產(chǎn)品牛逼了,從客服到總裁,都不愿意正視自己產(chǎn)品和運(yùn)營(yíng)上的問(wèn)題,選擇逃避了嗎?”這一番話,出自百合網(wǎng)聯(lián)合創(chuàng)
  • 共享單車的故事講到哪了?

    來(lái)源丨海克財(cái)經(jīng)與共享充電寶相差不多,共享單車已很久沒(méi)有被國(guó)內(nèi)熱點(diǎn)新聞關(guān)照到了。除了一再漲價(jià)和用戶直呼用不起了。近日多家媒體再發(fā)報(bào)道稱,成都、天津、鄭州等地多個(gè)共享單
  • 騰訊VS網(wǎng)易,最卷游戲暑期檔,誰(shuí)能笑到最后?

    作者:無(wú)銹缽來(lái)源:財(cái)經(jīng)無(wú)忌7月16日晚,上海1862時(shí)尚藝術(shù)中心。伴隨著幻象的精準(zhǔn)命中,碩大的熒幕之上,比分被定格在了14:12,被寄予厚望的EDG戰(zhàn)隊(duì)以絕對(duì)的優(yōu)勢(shì)戰(zhàn)勝了BLG戰(zhàn)隊(duì),拿下了總決
  • 小米汽車電池信息疑似曝光:容量101kWh,支持800V高壓快充

    7月14日消息,今日一名博主在社交媒體發(fā)布了一張疑似小米汽車電池信息的照片,顯示該電池包正是寧德時(shí)代麒麟電池,容量為101kWh,電壓為726.7V,可以預(yù)測(cè)小
  • 三星Galaxy Z Fold5官方渲染圖曝光:13.4mm折疊厚度依舊感人

    據(jù)官方此前宣布,三星將于7月26日在韓國(guó)首爾舉辦Unpacked活動(dòng),屆時(shí)將帶來(lái)帶來(lái)包括Galaxy Buds 3、Galaxy Watch 6、Galaxy Tab S9、Galaxy Z Flip 5、
  • OPPO K11樣張首曝:千元機(jī)影像“卷”得真不錯(cuò)!

    一直以來(lái),OPPO K系列機(jī)型都保持著較為均衡的產(chǎn)品體驗(yàn),歷來(lái)都是2K價(jià)位的明星機(jī)型,去年推出的OPPO K10和OPPO K10 Pro兩款機(jī)型憑借各自的出色配置,堪稱有
  • 最薄的14英寸游戲筆記本電腦 Alienware X14已可以購(gòu)買

    2022年1月份在國(guó)際消費(fèi)電子展(CES2022)上首次亮相的Alienware新品——Alienware X14現(xiàn)在已經(jīng)可以購(gòu)買了,這款筆記本電腦被譽(yù)為世界上最薄的 14 英寸游戲筆
Top