我有一个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认为最新)中,内部接口ApplicationEventBus
和UIEventBus
未定义。
那么,我如何使用真正的最新版本的插件?
答案 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
}
}
}
将EventBusConfiguration.class导入Spring配置(如果Spring Boot与@EnableAutoConfiguration一起使用,则可能不需要)
连接相应的事件总线(检查可用的不同类型的doumentations),这里我使用的是一个适用于每个UI实例的程序:
<dependency>
<groupId>org.vaadin.spring.addons</groupId>
<artifactId>vaadin-spring-addon-eventbus</artifactId>
<version>0.0.7.RELEASE</version>
</dependency>
根据需要发布活动,例如:
@Autowired
private EventBus.UIEventBus uiEventBus;
订阅其他组件类中的事件
uiEventBus.publish(this, new RefreshMainViewEvent(this, "Usage details updated"));
添加要对事件执行的操作(在此处的同一个类中):
@PostConstruct
public void afterPropertiesSet() {
uiEventBus.subscribe(this, false);
}