簡體   English   中英

如何在HK2中為服務創建代理

[英]How can I create a proxy for a service in HK2

我正在使用Jersey 2.x和內置在Jersey中的HK2。 我需要在服務中用注解標記某些方法,例如,我想在此類方法調用之前和之后執行一些其他操作。 不幸的是,HK2沒有任何AOP功能。 我認為我可以將工廠綁定到服務的接口,並在每次調用工廠的provide方法時創建服務的代理。 但是,我需要在工廠進行一些操作:

1)服務的類和接口創建代理

2) ServiceLocator實例正確注入所有服務的依賴項

而且我只是看不到兩者兼而有之。 如果我使用bindFactory(MyFactory.class)綁定工廠,則無法將有關服務的信息傳遞給它,但是可以將ServiceLocator實例注入其中。 而且,如果我使用bindFactory(new MyFactory(Service.class, ServiceImpl.class))綁定工廠,則我bindFactory(new MyFactory(Service.class, ServiceImpl.class))有關該服務的信息,但是我沒有ServiceLocator實例來正確創建該服務,因為HK2不會向其中注入任何內容工廠實例,我仍然看不到從AbstractBinder獲取ServiceLocator實例,以便在綁定期間為我的工廠提供定位器。

我非常感謝任何建議。 我希望我不是第一個想要統一代理我的服務的人。

在hk2(2.2.0-b25)的最新版本中,我們添加了將AOP聯盟攔截器添加到任何方法的功能。 但是此功能尚未完全發布(我們將添加構造函數注入),並且尚未完全記錄。 但是您可能想開始嘗試它,因為它將使您能夠將AOP MethodInterceptors添加到服務上的任何方法。

暫無
暫無

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

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