Java 将来自其他项目的bean注入到Vaadin视图中

Java 将来自其他项目的bean注入到Vaadin视图中,java,vaadin,vaadin7,Java,Vaadin,Vaadin7,在我的一个Vaadin视图中,我试图通过使用@Inject将驻留在另一个项目(bll)中的业务对象注入到它中来获得它 瓦丁视图: public class FruitSaladView extends VerticalLayout implements View { @Inject BananaService bananaService; ... } 当然,我不能这样做,BanaService对象在运行时是空的,因为我没有地方对包进行组件扫描 我正在使用注释,所以我的Vaadi

在我的一个Vaadin视图中,我试图通过使用@Inject将驻留在另一个项目(bll)中的业务对象注入到它中来获得它

瓦丁视图:

public class FruitSaladView extends VerticalLayout implements View {
    @Inject
    BananaService bananaService;
...
}
当然,我不能这样做,BanaService对象在运行时是空的,因为我没有地方对包进行组件扫描

我正在使用注释,所以我的Vaadin web项目中没有web.xml,甚至没有web-INF文件夹

我也知道有一些替代方案,比如和Vaadin插件,以及解决方案,但它们似乎都将内容注入主UI(而不是视图)和web应用程序本身,而不是其他模块

我使用的是Vaadin 7和Tomcat 7(只要给出下面问题的答案,使用Tomcat是可行的)

问题:将另一个模块中的bean注入到Vaadin视图中的建议方法是什么?为了实现这一点,我需要做什么


后续问题:使用上述方法后,将Tomcat用于此应用程序会有问题吗?

Tomcat只是Servlet容器,如果要使用CDI,必须使用符合JEE6标准的服务器,如TOME或jboss。 如果您对集成Vaadin和CDI的最佳实践感兴趣,我建议您从以下方面入手:


您写道,您希望直接注入beans Vaadin视图。分析示例代码,了解如何使用vaadin cdi附加组件来实现这一点

Tomcat只是一个Servlet容器,如果要使用cdi,必须使用符合JEE6标准的服务器,如TOME或jboss。 如果您对集成Vaadin和CDI的最佳实践感兴趣,我建议您从以下方面入手:


您写道,您希望直接注入beans Vaadin视图。分析示例代码,了解如何使用vaadin cdi插件将其他项目转换为jar。输入您当前的项目类路径。我不知道瓦丁,但一定有一个地方你可以进入国际奥委会的集装箱。在那里声明你的bean,这就是问题所在。我无法访问IoC容器,因为我不知道如何或在何处访问。在其他项目中,我在context.xml中使用@Inject-In代码和组件扫描成功地进行了注入。Vaadin本身不使用context.xml。请将其他项目转换为jar。输入您当前的项目类路径。我不知道瓦丁,但一定有一个地方你可以进入国际奥委会的集装箱。在那里声明你的bean,这就是问题所在。我无法访问IoC容器,因为我不知道如何或在何处访问。在其他项目中,我在context.xml中使用@Inject-In代码和组件扫描成功地进行了注入。Vaadin本身不使用context.xml。谢谢!我知道Vaadin CDI插件。如果可以,我宁愿使用不需要完整应用服务器的方法。我想用Tomcat。如果我想@Inject/@Autowired一个bean到一个Vaadin视图类,CDI/EJB还有其他选项吗?或者这是我想要实现的最好的建议吗?@Roger,我想你应该对applicationserver敞开心扉。如果你喜欢雄猫,请和我联系。但如果你真的只喜欢Tomcat,请阅读以下解决方案:谢谢!我知道Vaadin CDI插件。如果可以,我宁愿使用不需要完整应用服务器的方法。我想用Tomcat。如果我想@Inject/@Autowired一个bean到一个Vaadin视图类,CDI/EJB还有其他选项吗?或者这是我想要实现的最好的建议吗?@Roger,我想你应该对applicationserver敞开心扉。如果你喜欢雄猫,请和我联系。但如果您真的只喜欢Tomcat,请阅读以下解决方案: