当前位置: 首页 > 知识库问答 >
问题:

将其他项目中的beans注入到Vaadin视图中

顾乐家
2023-03-14

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

瓦丁观点:

public class FruitSaladView extends VerticalLayout implements View {
    @Inject
    BananaService bananaService;
...
}

我不能这样做,当然,bananaService对象在运行时是空的,因为我没有地方对包进行组件扫描。

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

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

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

问:将另一个模块中的Bean注入Vaadin视图的推荐方法是什么,我需要做什么才能完成此操作?

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

共有1个答案

谢宸
2023-03-14

Tomcat只是Servlet容器,如果你想使用CDI,你必须使用JEE6兼容的服务器,如tomee或jboss。如果您对集成Vaadin和CDI的最佳实践感兴趣,我建议您从:http://www . Adam-bien . com/roller/abien/entry/essential _ vaa din _ 7 _ Java _ ee开始

你写道,你想要直接注入豆子Vaadin视图。分析示例代码 https://github.com/vaadin/cdi/blob/master/vaadin-cdi-example/src/main/java/com/vaadin/cdi/example/view/RootView.java,以了解如何使用vaadin-cdi附加组件进行操作

 类似资料:
  • 因此,我有一个Project1与类A。我有Project2与类B。如何将类A导入到B,而不必在Project2等中创建一个新类。我知道这与构建路径有关,但是我如何添加,以便我可以编写类似于导入Project1/A;的东西?

  • 我创建了一个带有jar打包的maven实用程序项目,在该项目中,我实现了EntityManager接口来管理数据库连接和其他内容。但当我想(从另一个maven项目)将其与@Inject一起使用时,它就不起作用了。 有没有办法指定要使用哪个EntityManager实现? 重要提示:如果我在主项目中包含这个实体管理器,它是有效的。但是我正在努力避免这种情况,因为将来我会有其他项目使用相同的数据库。

  • 我声明了实现ApplicationContextAware的ApplicationClass(将静态链接放置到我的上下文),但是当我调试方法setApplicationContext(ApplicationContext ApplicationContext)时,我看到ApplicationContext不是空的。它包含了vaadin bean的延迟,比如PostView,我想用“authwire

  • 问题内容: 我遇到了我认为应该是一个非常简单的问题。 我需要将arrayList中的每个项目与列表中的其他所有项目进行比较,而无需将项目与其自身进行比较。它不像调用equals()比较那样简单,它涉及一些自定义逻辑,我在下面的代码中省略了这些自定义逻辑。而且,ArrayList不应以任何方式更改。 我似乎遇到的问题是,一旦进入第二个循环,我就不知道是否有另一个对象要与之比较(因为它是一个可变大小的

  • 我有一个java项目,它在其他项目中导入和使用类。我能够在eclipse中成功地构建这个项目。然后,我从eclipse导出了一个Ant构建文件build。xml。如果我尝试使用eclipse或通过cmd提示符运行此文件,则会失败。 许多导入报告错误之一是: [javac]H:...\sortedProvidablemanagertest\SimpleObject.java: 8:错误:包com.r

  • 简介 通过 Cocos Creator 主菜单中 文件->导入项目 的子菜单,可以导入其他编辑器中的项目。目前支持导入的编辑器项目有: Cocos Studio 项目(*.ccs 文件) Cocos Builder 项目(*.ccbproj 文件) 相应的菜单项如图: 操作步骤说明 导入其他编辑器项目的操作步骤如下: 点击相应的菜单,打开文件选择对话框。 选择对应扩展名的文件,即可开始导入。如图: