在我的一個Vaadin視圖中,我嘗試通過注入@Inject來獲取駐留在另一個項目(bll)中的業務對象。從其他項目注入Vaadin視圖
Vaadin觀點:
public class FruitSaladView extends VerticalLayout implements View {
@Inject
BananaService bananaService;
...
}
我不能做到這一點,當然bananaService對象是在運行時爲空,因爲我無處做組件的掃描包。
我使用註釋,所以我沒有在我的Vaadin web項目中的web.xml,我甚至沒有一個WEB-INF文件夾。
我也知道有一些替代品,像CDI-Utils和Vaadin CDI Vaadin插件,以及some other解決方案,這一點,但他們似乎都注入東西到主UI(不意見),並從網絡應用程序本身,而不是其他模塊。
我使用Vaadin 7和Tomcat 7(只要它使用Tomcat給出的答案,下面的問題是可行的)
問:什麼是推薦的方式,從另一個模塊注入豆進入Vaadin的觀點,我需要做什麼才能做到這一點?
後續問題:使用上述方法後,使用Tomcat進行此應用會出現問題嗎?
將您的其他項目轉換爲jar。放入您當前的項目類路徑。我不知道Vaadin,但必須有一個地方可以訪問IoC容器。在那裏聲明你的bean。 –
這就是問題所在。我無法訪問IoC容器,因爲我不知道如何或在哪裏做。在其他項目中,我使用@Inject在代碼和組件掃描中成功注入了context.xml。 Vaadin本身不使用context.xml。 – Roger