簡體   English   中英

AEM / CQ5上的Java批注(構造后和預銷毀)

[英]Java Annotations (Postconstruct and PreDestroy) on AEM/CQ5

是否可以在AEM 6中的OSGI Bundle的Service類上使用帶有注釋@PostConstruct@PreDestroy的方法,因為我計划為數據庫連接創建一個單獨的捆綁包,而我將使用這兩個注釋的方式是打開@PostConstruct上的數據庫連接並關閉該連接,並執行@PreDestroy上的提交或回滾。 如果不可能,是否有其他方法或無法解決我計划的方法?

OSGi使用一組不同的注釋來處理捆綁軟件的激活和停用。

這些是org.apache.felix.scr.annotations中的@Activate@Deactivate注釋

例如:

@Component
public class Foo implements Bar {

   @Activate
   void activate(ComponentContext ctx) {
      System.out.println("Activating bundle: " + ctx.getUsingBundle());
   }

   @Deactivate
   void deactivate(ComponentContext ctx) {
      System.out.println("Deactivating bundle: " + ctx.getUsingBundle());
   }
}

有關更多信息,請查看OSGi Wiki

但是,我認為您不應該在捆綁軟件的整個生命周期中保持數據庫連接打開。 只需在真正需要時臨時打開和關閉它即可。

激活捆綁軟件時,您應該創建的不是連接而是一個能夠構建和維護連接池的對象。

Google周圍的DataSourceFactory接口

另外,我認為AEM已經提供了一組JDBC連接器OOTB。 在着手開發自定義解決方案之前,請務必查看有關此主題Adobe文檔

暫無
暫無

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

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