Vaadin、Spring 整合。
1.Spring配置
(1).web.xml
<param-name>contextConfigLocation</param-name>
<param-value>classpath*:/spring-config.xml</paramvalue>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<!-- spring管理session作用域的bean -->
<listener>
<listener-class>org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
2.将Vaadin 的 Application 纳入到 Spring 的 Context中进行管理;
(1).web.xml
<!--Vaadin 应用程序Servlet继承vaadin的Appliction-->
<servlet>
<servlet-name>Vaadinmanager Application</servlet-name>
<servlet-class>com.iyspace.manager.SpringApplicationServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>Vaadinmanager Application</servlet-name>
<url-pattern>/*</url-pattern>
</servlet-mapping>
(2).com.iyspace.manager.SpringApplicationServlet 类继承自Vaadin的application类,过滤所有的请求并从Spring的ApplicationContext中取得应用的Application对象
SpringApplicationServlet 源码
package com.iyspace.manager;
import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
import com.vaadin.Application;
import com.vaadin.terminal.gwt.server.AbstractApplicationServlet;
@SuppressWarnings("serial")
public class SpringApplicationServlet extends AbstractApplicationServlet {
/** Default application bean name in Spring application context. */
private static final String DEFAULT_APP_BEAN_NAME = "application";
/** Application bean name in Spring application context. */
private String name;
@Override
public void init(ServletConfig config) throws ServletException {
super.init(config);
String name = config.getInitParameter("applicationBeanName");
this.name = name == null ? DEFAULT_APP_BEAN_NAME : name;
}
@Override
protected Application getNewApplication(HttpServletRequest request) throws ServletException {
WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
if (wac == null) {
throw new ServletException("Cannot get an handle on Spring's context. Is Spring running?"
+ "Check there's an org.springframework.web.context.ContextLoaderListener configured.");
}
Object bean = wac.getBean(Application.class);
if (!(bean instanceof Application)) {
throw new ServletException("Bean " + name + " is not of expected class Application");
}
return (Application) bean;
}
@SuppressWarnings({ "unchecked", "rawtypes" })
@Override
protected Class<? extends Application> getApplicationClass() throws ClassNotFoundException {
WebApplicationContext wac = WebApplicationContextUtils.getWebApplicationContext(getServletContext());
if (wac == null) {
throw new ClassNotFoundException("Cannot get an handle on Spring's context. Is Spring running? "
+ "Check there's an org.springframework.web.context.ContextLoaderListener configured.");
}
Object bean = wac.getBean(name);
if (bean == null) {
throw new ClassNotFoundException("No application bean found under name " + name);
}
return (Class) bean.getClass();
}
}
(3)应用的Application类
VaadinmanagerApplication
@Component("application")
@Scope("session")
public class VaadinmanagerApplication extends Application{
@Autowired
public MainWindow mainWindow; // Spring中管理存在在session作用域中
public VaadinmanagerApplication(){
System.out.println("application create");
}
@Override
public void init() {
this.mainWindow.showLoginPage();
setMainWindow(this.mainWindow);
}
}
现在就Vaadin和Spring就简单的整合到一起了,当有请求到来时SpringApplicationServlet 会判断如果是第一次请求(Session中没有VaadinmanagerApplication 对象)spring会创建该对象,若有该对象将直接使用。
以上的内容是google加自己摸索整理出来的如果有错误的地方欢迎指正。
先整到这里,明天再写 Vaadin页面怎么使用Spring中的bean来加载数据。
分享到:
相关推荐
这个"vaadin-springRoo可运行的例子"是一个整合了这两个框架的实际项目,提供了完整的war包和源代码,使得开发者可以深入学习和理解如何在实际开发中结合Vaadin和Spring Roo。 Vaadin是一个开源的Java框架,它允许...
vaadin4spring, 用于 spring 和 Spring Boot的Vaadin集成 Vaadin4Spring扩展和扩展这个项目是作为官方 Vaadin spring add-on的... 现在有了一个 ,并且在 Vaadin4Spring 0.0.6中,这个项目将被视为正式的spring add-
此项目是将原始移植到Vaadin和Spring Boot的练习。分行大师-Java 11,Vaadin 8.9.0(正在供货) vaadin-v8-java-v8 -Java 8,Vaadin 8.3.0(旧版) vaadin-v8-with-v7兼容性-具有Vaadin 7兼容性的Vaadin 8.1.5(旧版...
SpringBoot 和 Vaadin14 的整合是现代Java Web应用程序开发的一种流行组合。Spring Boot以其便捷的启动、自动配置和丰富的生态系统而闻名,而Vaadin则是一个强大的基于组件的Web框架,专注于提供直观、高效的用户...
本篇文章将深入探讨如何在Spring Boot应用中整合Vaadin、REST服务以及静态HTML,通过实例来解析这一技术栈的使用方法。 一、Vaadin在Spring Boot中的应用 1. Vaadin简介:Vaadin是一个基于Java的开源Web应用程序...
根据提供的文件信息,我们可以了解到《Building Modern Web Apps with Spring Boot and Vaadin.pdf》是一本关于使用Java语言开发现代Web应用的指南,特别强调了Spring Boot和Vaadin框架的结合使用。文件中提及的内容...
vaadin10-spring-security ...这是一个如何与Vaadin 10一起使用Spring和Spring安全性的示例。 已通过Apache Tomcat 8.5.5进行测试。 免责声明:对于本代码的使用,我不承担任何责任,使用此代码后果自负。
在压缩包中的“vaadin8-apring”可能是一个整合了Spring框架的Vaadin示例,Spring框架能与Vaadin无缝集成,提供依赖注入、安全管理等服务,使得应用的后端逻辑更加清晰和易于维护。 标签中的“license”强调了许可...
有关其他框架版本,请参见其他分支: Vaadin Framework V7版本的1.2 Vaadin Framework V8.0.X版本的2.0和2.1 Vaadin Framework V8.2版本的3.0 Vaadin 10为10.0 Vaadin 13(行尾)的11.0 Vaadin 14.0为12.0 Vaadin ...
本项目是一个基于Spring Boot框架和Vaadin UI库开发的天气预报应用程序。Spring Boot以其便捷的配置、自动装配特性,使得快速构建微服务应用变得简单。而Vaadin则是一款强大的Java Web开发框架,它允许开发者使用...
整个项目将围绕Spring Boot的生命周期管理和Vaadin的UI组件展开,通过Spring Data JPA或者MyBatis等数据访问技术与数据库进行交互,实现员工信息的CRUD操作。同时,可能还会涉及安全性配置,如使用Spring Security...
7. **集成Spring**:Vaadin可以与Spring框架无缝集成,方便进行依赖注入和应用管理。 8. **Vaadin Flow与Vaadin 8**:Vaadin有两个主要版本,Vaadin 8基于GWT,而较新的Vaadin Flow是基于Java Servlet API的,支持...
资源名称:Vaadin简介和HelloWorld 中文WORD版内容简介:本文档主要讲述的是Vaadin简介和HelloWorld;Vaadin(芬兰民间传说中的一种神话生物,是女神也是一种山岭驯鹿的神话祖先) 是一款使用 Apache V2 许可协议的...
Vaadin Spring教程该项目包含有关使用Vaadin和Spring的教程的源代码,以及Spring Boot的帮助。 该教程可以在找到。 本教程项目涵盖的主题: Vaadin Spring的Flow和Spring Boot入门:初始@SpringBootApplication类。 ...
Vaadin Spring Boot演示这是一个使用生成的小型Vaadin应用程序,它使用JPA和Spring Data存储库来存储数据。 最初在巴塞罗那2015年SpringI / O上展出。 该应用程序具有两个视图:用于列出GPS数据的组件和 。 适用于...
Vaadin和Struts2是两种不同的Java Web开发框架,它们各自有着独特的特性和用途,但有时为了实现更复杂的业务逻辑或者充分利用两者的优势,开发者会选择将它们结合使用。在这个"国外朋友的vaadin和struts2结合的例子...
测试使用Spring Boot,Spring Loaded和Vaadin启动项目命令行mvn install spring-boot:run并在浏览器中打开在IDE中启动项目选项1,从您的IDE启动spring-boot:run 选项2,启动Application类,在这种情况下,您需要下载...
将Vaadin和Spring Boot整合在一起,可以利用Spring的依赖注入和AOP特性,以及Vaadin的UI优势。项目部署通常通过打包成jar文件完成,可以使用Spring Boot的内置服务器直接启动运行。 7. 示例代码分析 在`ExcelVaadin...
Vaadin是一个基于Java的Web开发框架,它的核心特点在于可以像使用Java Swing一样简单地进行Web页面布局和开发。这得益于Vaadin提供的丰富的UI组件库和清晰的框架结构,使得开发者能够在服务器端和客户端上使用Java...