java - UI 中的 Spring + Vaadin 注解 @Autowired

标签 java spring jsp servlets vaadin

我现在正在使用 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
    {
    }
}

最佳答案

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

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

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

关于java - UI 中的 Spring + Vaadin 注解 @Autowired,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38791257/

相关文章:

java - 使用 jQuery .Post 将 UTF-8 作为文本渲染到模态框

java.lang.ClassCastException : android.graphics.drawable.ColorDrawable无法转换为android.graphics.drawable.BitmapDrawable

java - AnnotationAwareAspectJAutoProxyCreator 仅适用于 Java 1.5 及更高版本

java - 使用 jSTL 在 JSP 中预填充下拉列表

html - 在jsp中显示未知大小的图像

java -\b 在 IntelliJ 的控制台中表现得很奇怪

java - 阻塞的java线程的方法可以被另一个线程执行吗?

spring - 在spring mvc中将多个参数从 View 传递给 Controller

Java Spring 将消息从消费者发送回队列

java - Json 数组转 html 表 - JSTL