如何在Maven中使用最新版本的Vaadin4Spring EventBus框架?

时间:2015-02-28 20:34:50

标签: maven vaadin vaadin4spring

我有一个Vaadin的Spring Boot项目,我想整合Vaadin4Spring EventBus框架:

https://github.com/peholmst/vaadin4spring/tree/master/spring-vaadin-eventbus

作者说:

  

请注意,事件总线API在版本0.0.5中已更改

但是,如果我在我的pom.xml中添加Maven依赖项:

    ...
    <dependency>
        <groupId>org.vaadin.spring</groupId>
        <artifactId>spring-vaadin-eventbus</artifactId>
        <version>LATEST</version>
    </dependency>
    ...

Maven下载0.0.4.RELEASE版本。我试图明确设置以下版本:

    ...
    <dependency>
        <groupId>org.vaadin.spring</groupId>
        <artifactId>spring-vaadin-eventbus</artifactId>
        <version>0.0.5</version>
    </dependency>
    ...

    ...
    <dependency>
        <groupId>org.vaadin.spring</groupId>
        <artifactId>spring-vaadin-eventbus</artifactId>
        <version>0.0.5.RELEASE</version>
    </dependency>
    ...

    ...
    <dependency>
        <groupId>org.vaadin.spring</groupId>
        <artifactId>spring-vaadin-eventbus</artifactId>
        <version>0.0.5-SNAPSHOT</version>
    </dependency>
    ...

我还尝试将整个Spring4Vaadin插件设置为依赖项:

<dependency>
  <groupId>org.vaadin.spring</groupId>
  <artifactId>spring-boot-vaadin</artifactId>
  <version>LATEST</version>
</dependency>
...


<dependency>
  <groupId>org.vaadin.spring</groupId>
  <artifactId>spring-boot-vaadin</artifactId>
  <version>0.0.5</version>
</dependency>
...

<dependency>
  <groupId>org.vaadin.spring</groupId>
  <artifactId>spring-boot-vaadin</artifactId>
  <version>0.0.5-SNAPSHOT</version>
</dependency>    
...

<dependency>
  <groupId>org.vaadin.spring</groupId>
  <artifactId>spring-boot-vaadin</artifactId>
  <version>0.0.5.RELEASE</version>
</dependency>

但他们都没有奏效。

基本上,我不能这样做:

 @Autowired
 EventBus.ApplicationEventBUs appEventBus;

 @Autowired
 EventBus.UIEventBus UIEventBus;
 ...

因为,如GitHub上的README.md所述:

  

请注意,事件总线API在版本0.0.5中已更改。现在起   在,您必须使用特定的声明要注入哪个事件总线   接口(以前,一切都是EventBus,你用过   注释,以指定要获得的总线)。这种变化的原因   是

因此,在版本0.0.4.RELEASE(Maven认为最新)中,内部接口ApplicationEventBusUIEventBus未定义。

那么,我如何使用真正的最新版本的插件?

1 个答案:

答案 0 :(得分:0)

把我放在vaadin论坛中的答案放在这里:

Vaadin插件有一个很好的Event Bus实现。查看https://github.com/peholmst/vaadin4spring/tree/master/samples/eventbus-sample

我使用弹簧启用(不是弹簧启动)Vaadin应用程序完成了这个,但是我可以在没有Spring的情况下工作,简短的步骤: 1.添加以下依赖项

// Compare files

foreach (Items item in files)
{  
    foreach(Items it in filesToDownload)
    {
        if (!it.updated_at.Equals(item.updated_at))
        {
        //Download the file
        //Create a new list of files to download
        }
    }
}
  1. 将EventBusConfiguration.class导入Spring配置(如果Spring Boot与@EnableAutoConfiguration一起使用,则可能不需要)

  2. 连接相应的事件总线(检查可用的不同类型的doumentations),这里我使用的是一个适用于每个UI实例的程序:

    <dependency>
        <groupId>org.vaadin.spring.addons</groupId>
        <artifactId>vaadin-spring-addon-eventbus</artifactId>
        <version>0.0.7.RELEASE</version>
    </dependency>
    

  3. 根据需要发布活动,例如:

    
    @Autowired
    private EventBus.UIEventBus uiEventBus;
    

  4. 订阅其他组件类中的事件

    
    uiEventBus.publish(this, new RefreshMainViewEvent(this, "Usage details updated"));
     

  5. 添加要对事件执行的操作(在此处的同一个类中):

    
    @PostConstruct
    public void afterPropertiesSet() {
    uiEventBus.subscribe(this, false); }