【问题标题】:Spring + Vaadin annotation @Autowired in UIUI中的Spring + Vaadin注解@Autowired
【发布时间】:2016-08-05 14:06:28
【问题描述】:

我现在正在使用 Spring + Vaadin JSP 集成。我正在开发互联网商店的管理面板。 我已经完成了 Spring 服务器并成功地将 Vaadin UI 添加到其中,但是 vaadin UI 中的注释(@Autowired 等)不起作用,因为服务器分为两个 servlet(dispacherServlet 和 vaadinServlet)。大多数服务器页面与调度程序 servlet 一起使用,只有管理面板与 Vaadin 一起使用。我需要将 JPA 存储库和服务连接到 vaadin UI。您能否帮我修复它并将服务连接到 UI。 用户界面类:

@Theme("valo")
@Title("Administration panel")
@SpringUI
public class Administration extends UI {

    @Autowired
    LoginService service;  //null

    @Override
    protected void init(VaadinRequest request) {
        AbsoluteLayout layout = new AbsoluteLayout();
        setContent(layout);
        TabSheet tabs = new TabSheet();
        tabs.setSizeFull();
        UsersTab usersTab= new UsersTab();
        CategoriesTab categoriesTab = new CategoriesTab();
        tabs.addComponent(usersTab.getLayout());
        tabs.addComponent(categoriesTab.getLayout());
        layout.addComponent(tabs);
    }
    @WebServlet(urlPatterns = {"/administration","/administration/*","/VAADIN/*"},asyncSupported = true)
    @VaadinServletConfiguration(ui = Administration.class, productionMode = false)
    public static class AdministrationVaadinServlet extends VaadinServlet
    {
    }
}

【问题讨论】:

  • 请不要链接到代码,而是在您的问题中提供有意义的代码 sn-ps。您可以edit添加代码。
  • 你关注Vaadin Spring Tutorial了吗?我猜您不使用 Spring Boot,因此请查看“I b - 没有 Spring Boot 的 Vaadin Spring 入门”部分。

标签: java spring jsp servlets vaadin


【解决方案1】:

要使 Vaadin UI 类成为 Spring 托管 bean,您不能使用您在代码 sn-p 中扩展的默认 VaadinServlet。

在大多数情况下,您实际上根本不需要呈现 servlet,但 Vaadin Spring 中的上下文侦听器会自动为您创建它。如果您出于某种原因需要对 servlet 进行一些自定义,请扩展 SpringVaadinServlet 类而不是普通的 VaadinServlet。

如果您使用的是 Spring Boot,只需删除 servlet 声明。与非引导配置相同,但您需要在配置类中使用 @EnableVaadin。如果您不使用 Spring Boot,请参阅 Vaadin Spring tutorial 了解更多设置说明。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-25
    • 1970-01-01
    • 2011-04-01
    • 2012-01-19
    • 1970-01-01
    相关资源
    最近更新 更多