[英]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.