首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >视图中的Spring boot、Vaadin - cant自动布线服务

视图中的Spring boot、Vaadin - cant自动布线服务
EN

Stack Overflow用户
提问于 2016-04-06 03:30:12
回答 1查看 2.5K关注 0票数 2

我有spring boot应用程序与vaadin和vaadin4spring插件。在我的一个视图中,我想要显示数据库中的数据。我想显示的数据是由service类中的方法返回的。

代码语言:javascript
复制
@Service
public class UserService {
    public List<Users> getUsers() ....
}

查看:

代码语言:javascript
复制
@SpringView(name = Views.USERLIST) //static constant containing string "users"
public class UserlistView extends HorizontalLayout implements View {
    @Autowired
    private UserService userService;
    @PostConstruct
    public void construct() {
        displaytable(userService.getUsers());
    }
    @Override
    public void enter(ViewChangeListener.ViewChangeEvent viewChangeEvent) {}

}

UI class:

@SpringUI
@Theme("valo")
public class TUI extends UI {
        @Autowired
        private SpringViewProvider springViewProvider;

        protected void init(VaadinRequest request) {
          ..
          Navigator navigator = new Navigator(this, content);
           navigator.addView(Views.USERLIST, UserlistView.class);
          navigator.addProvider(springViewProvider);

        }
}

在服务器启动过程中,vaadin会识别springview -“c.v.spring.navigator.SpringViewProvider :1 SpringView found",不会显示任何异常或警告。

每次我使用navigator display时,视图中的视图(navigator.navigateTo("users"))自动连接字段都不会被注入,也不会调用后期处理方法。更奇怪的是,如果我不将视图添加到navigator对象中,并使用url直接访问视图-localhost:8080/#!用户,字段将被正确注入并调用方法construct()。

如果有用的话,这里有我的配置类

代码语言:javascript
复制
@Configuration
@ComponentScan(basePackages = { "me.project" })
@EnableAutoConfiguration
@EnableVaadinEventBus
public class TheConfig {
    // contains only one bean definition - sessionfactory
}

有没有人遇到过类似的问题?我到处都找不到帮助,有人能告诉我我做错了什么吗?谢谢

EN

回答 1

Stack Overflow用户

发布于 2016-08-02 19:07:02

当你这样做的时候

代码语言:javascript
复制
navigator.addView(Views.USERLIST, UserlistView.class);

它创建了一个不是由Spring处理的StaticViewProvider,并使用'new‘创建了一个视图。所以如果你使用的是springViewProvider,那么'addView‘就不会发生Spring自动装配。

所以不要使用navigator.addView(),而是在使用Spring+Vaadin时依赖springViewProvider

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36435424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档