簡體   English   中英

Spring @PostConstruct和@PreDestroy方法的注釋是否是AOP形式?

[英]Are the Spring @PostConstruct and @PreDestroy method's annotations annotations a form of AOP?

我對Spring @PostConstruct@PreDestroy方法的注釋有以下疑問。

所以@PostConstruct注釋意味着該annoted方法對象的創建之后和依賴注入使用設置器metthod完成后自動地執行

@PreDestroy是在關閉ApplicationContext之前自動執行的。

我的疑問是: @PostConstruct@PreDestroy注釋是否是AOP形式?

兩者都是EE規范的一部分,而不是春季。

請參閱此處此處的相應文檔以了解更多詳細信息。

AOP是一種編程范例 ,請參見此處 如果我正確理解了您的問題,那么您問的是AOP范圍內的“ @PostConstruct和@PreDestroy”。 我的答案是肯定的 ,至少是因為它們是使用非OOP的Reflection開發的。

注意:

AOP包括支持在源代碼級別將關注點模塊化的編程方法和工具。

正如Bond所提到的,這些是Java EE注釋,而不是Spring注釋-但是像許多注釋一樣,Spring支持它們(就像Springs @Autowired與EE @Inject等一樣)。

但是,我不會說反射不是OOP-盡管它可能與純封裝相反,但出於充分的原因,它是主要OOP語言的組成部分。 反射用法也不表示AOP。

AOP通常用於在該方法之前/之后/周圍調用某些內容(該代碼在那里不可見),並且通常由注釋表示(例如Springs @Transactional ),但也可以在其他地方聲明(配置)。 另一方面,@ @PostConstruct@PreDestroy主要是生命周期方法,是在特定時間發生的鈎子-它們所做的任何事情都在代碼中明確顯示。

因此,這里沒有任何方面隱藏,絕對沒有典型AOP含義中的任何方面。 唯一隱藏的是在正確的時機調用它的魔力。 但是,盡管Java不直接支持AOP,但不需要AOP庫,只需簡單的反射即可。 我懷疑有人會把JVM的關閉鈎子稱為AOP。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM