java注解到底有什么用 Java中的注解到底是如何工作的?
Java中的注解到底是如何工作的?注釋用于描述Java類。您可以自定義注釋,然后通過反射獲取注釋以執(zhí)行指定的操作。舉個(gè)簡單的例子這樣可以通過反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。當(dāng)然,這個(gè)自
Java中的注解到底是如何工作的?
注釋用于描述Java類。您可以自定義注釋,然后通過反射獲取注釋以執(zhí)行指定的操作。
舉個(gè)簡單的例子
這樣可以通過反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。
當(dāng)然,這個(gè)自定義注釋還取決于一些特定的注釋,我們稱之為元注釋。一共有五種:
@保留:生存周期保留策略.SOURCE
保持在源階段保留策略.CLASS
Compile
retention policy,runtime
@documented將注釋中的元素包含到Javadoc中
@target注釋可用于類、方法、屬性、,等等]@繼承的
@可重復(fù)的可重復(fù)的
控制反轉(zhuǎn),這些只能說是一種編程思想,理想狀態(tài)下實(shí)現(xiàn)自動(dòng)注入,生命周期管理,但是在實(shí)際開發(fā)中,我覺得有時(shí)候真的沒有新的那么方便,主要遇到以下問題:1、要寫很多配置,要寫構(gòu)造函數(shù),所以折騰起來比新的麻煩多了,特別是有些函數(shù)計(jì)算整個(gè)項(xiàng)目只需要一次。原來,new會(huì)立即完成,但是如果你想使用依賴注入,你仍然需要編寫配置
2。當(dāng)你需要注入更多的類時(shí),構(gòu)造器就像老婦人的裹尸布一樣臭,一樣長。關(guān)鍵是以前用過的一些類現(xiàn)在不用了,你要手工清理構(gòu)造函數(shù),這比new要麻煩多了
3,最關(guān)鍵的一點(diǎn)是有時(shí)候項(xiàng)目復(fù)雜的時(shí)候,會(huì)遇到循環(huán)注入的問題,就是a依賴B,B依賴C,而C依賴于A。這種情況表明該體系結(jié)構(gòu)是不合理的。這個(gè)時(shí)候,你要么重構(gòu)架構(gòu),要么不用依賴注入,直接用new來解決
所以綜上所述,依賴注入只是一種編程思想,從宏觀的角度來看,它有一些先進(jìn)的特性,它是為了解決多人共同開發(fā)一個(gè)項(xiàng)目時(shí),各模塊之間相互獨(dú)立,減少了相互之間的依賴和干擾。從微觀的角度看,幾個(gè)類是密切相關(guān)的。雖然文件是獨(dú)立的,但是功能是集成的。在這個(gè)時(shí)候,脫鉤是沒有意義的。為什么不是新的?
因此,我個(gè)人理解依賴注入與引擎是一樣的。發(fā)動(dòng)機(jī)由幾個(gè)主要部件組成。這些組件之間是解耦的,可以通過依賴注入來實(shí)現(xiàn)。對(duì)于單個(gè)組件的內(nèi)部部件和螺釘,必須使用依賴注入來實(shí)現(xiàn)它們。這比收益多一點(diǎn)。使用new來實(shí)現(xiàn)它們要方便得多。。。[挑鼻子][挑鼻子][挑鼻子][挑鼻子][挑鼻子]