W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
說到這里,你可能想知道 Micronaut 是如何在不需要反射的情況下進(jìn)行上述依賴注入的。
關(guān)鍵是一組 AST 轉(zhuǎn)換(對于 Groovy)和注釋處理器(對于 Java),它們生成實現(xiàn) BeanDefinition 接口的類。
Micronaut 使用 ASM 字節(jié)碼庫生成類,并且由于 Micronaut 提前知道注入點(diǎn),因此不需要像 Spring 等其他框架那樣在運(yùn)行時掃描所有的方法、字段、構(gòu)造函數(shù)等。
此外,由于在構(gòu)造 bean 時不使用反射,JVM 可以更好地內(nèi)聯(lián)和優(yōu)化代碼,從而提高運(yùn)行時性能并減少內(nèi)存消耗。這對于應(yīng)用程序性能取決于 bean 創(chuàng)建性能的非單例范圍尤其重要。
此外,使用 Micronaut,您的應(yīng)用程序啟動時間和內(nèi)存消耗不會像使用反射的框架那樣受到代碼庫大小的影響?;诜瓷涞?nbsp;IoC 框架為代碼中的每個字段、方法和構(gòu)造函數(shù)加載和緩存反射數(shù)據(jù)。因此,隨著代碼大小的增加,內(nèi)存需求也會增加,而使用 Micronaut 時情況并非如此。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: