我正在尝试向NavigationView(Vaadin Touchkit)中注入几个spring服务,并且视图根本不由Spring管理,因此不会调用@PostConstruct方法,因此不会调用服务。
是否可以将此类视图作为spring bean管理,就像管理普通Vaadin Views一样?
否则,我如何在Vaadin Touchkit NavigationView中使用注入服务?
班级宣言:
@VaadinView(name = Views.HOME)
@UIScope
public class HomeView extends NavigationView {
@Autowired
private WindDataClientService windDataClientService;
@Autowired
private ForecastDataService forecastDataService;
...
...
...
@PostConstruct
public void init() {
grpConditions.addComponent(lnkConditionsTitle);
grpConditions.addComponent(buildConditionRows());
lblAlertsTitle.setCaption(lblAlertsTitle.getCaption() + forecastDataService.findClosestForecast());
}
}
提前多多感谢
答案 0 :(得分:1)
您应该将TouchKits NavigationView视为普通的Vaadin组件,例如VerticalLayout或Panel,而不是Vaadin Navigator View。所以不需要用@VaadinView注释它,而只需要使用Component(〜@ VaadinComponent)注释它。
如果您想在导航器中使用NavigationView组件,则需要其他一些技巧。您至少需要使视图实现与导航器相关的View界面。我没有尝试过,但我认为它应该也可以。