`
cooperay
  • 浏览: 215703 次
  • 性别: Icon_minigender_1
  • 来自: 郑州
社区版块
存档分类
最新评论

使用注解将 Vaadin 6.7.3 和 Spring 3.0.5 整合 (一)

 
阅读更多

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来加载数据。

 

 

   

 

分享到:
评论
4 楼 kiven 2013-05-09  
大虾,你给的例子无法运行啊。。。能给个运行的么??小弟也在研究。
3 楼 sunlu 2012-09-20  
我最近在研究vaadin+hibernate(或者oob)+spring,看到楼主关于vaadin的资料对我挺有帮助的!
2 楼 cooperay 2012-02-11  
awed 写道
国内对于Vaadin的关注好少,最好能附上例子,谢谢!


附件是研究时候写的一个示例,可以看看   
1 楼 awed 2012-02-10  
国内对于Vaadin的关注好少,最好能附上例子,谢谢!

相关推荐

    vaadin-springRoo可运行的例子

    这个"vaadin-springRoo可运行的例子"是一个整合了这两个框架的实际项目,提供了完整的war包和源代码,使得开发者可以深入学习和理解如何在实际开发中结合Vaadin和Spring Roo。 Vaadin是一个开源的Java框架,它允许...

    vaadin4spring, 用于 spring 和 Spring Boot的Vaadin集成.zip

    vaadin4spring, 用于 spring 和 Spring Boot的Vaadin集成 Vaadin4Spring扩展和扩展这个项目是作为官方 Vaadin spring add-on的... 现在有了一个 ,并且在 Vaadin4Spring 0.0.6中,这个项目将被视为正式的spring add-

    jpetstore-6-vaadin-spring-boot:此项目是一个练习,将原始JPetStore-6移植到Vaadin 8和Spring Boot

    此项目是将原始移植到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 整合官方文档.pdf

    SpringBoot 和 Vaadin14 的整合是现代Java Web应用程序开发的一种流行组合。Spring Boot以其便捷的启动、自动配置和丰富的生态系统而闻名,而Vaadin则是一个强大的基于组件的Web框架,专注于提供直观、高效的用户...

    vaadin-spring-boot-examples:在Spring Boot应用程序中使用Vaadin,REST和静态HTML的示例

    本篇文章将深入探讨如何在Spring Boot应用中整合Vaadin、REST服务以及静态HTML,通过实例来解析这一技术栈的使用方法。 一、Vaadin在Spring Boot中的应用 1. Vaadin简介:Vaadin是一个基于Java的开源Web应用程序...

    Building Modern Web Apps with Spring Boot and Vaadin.pdf

    根据提供的文件信息,我们可以了解到《Building Modern Web Apps with Spring Boot and Vaadin.pdf》是一本关于使用Java语言开发现代Web应用的指南,特别强调了Spring Boot和Vaadin框架的结合使用。文件中提及的内容...

    vaadin10-spring-security:Vaadin 10 Spring和Spring安全性示例

    vaadin10-spring-security ...这是一个如何与Vaadin 10一起使用Spring和Spring安全性的示例。 已通过Apache Tomcat 8.5.5进行测试。 免责声明:对于本代码的使用,我不承担任何责任,使用此代码后果自负。

    Vaadin8 license + 入门例子

    在压缩包中的“vaadin8-apring”可能是一个整合了Spring框架的Vaadin示例,Spring框架能与Vaadin无缝集成,提供依赖注入、安全管理等服务,使得应用的后端逻辑更加清晰和易于维护。 标签中的“license”强调了许可...

    Spring:Vaadin的Spring整合

    有关其他框架版本,请参见其他分支: 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 ...

    基于SpringBoot与VAADIN开发的天气预报App项目-源码

    本项目是一个基于Spring Boot框架和Vaadin UI库开发的天气预报应用程序。Spring Boot以其便捷的配置、自动装配特性,使得快速构建微服务应用变得简单。而Vaadin则是一款强大的Java Web开发框架,它允许开发者使用...

    毕业设计&课设-一个Spring引导的全栈web应用程序,允许您添加、删除、编辑和更新员工信息 使用Vaadin作为前.zip

    整个项目将围绕Spring Boot的生命周期管理和Vaadin的UI组件展开,通过Spring Data JPA或者MyBatis等数据访问技术与数据库进行交互,实现员工信息的CRUD操作。同时,可能还会涉及安全性配置,如使用Spring Security...

    vaadin中文学习资料

    7. **集成Spring**:Vaadin可以与Spring框架无缝集成,方便进行依赖注入和应用管理。 8. **Vaadin Flow与Vaadin 8**:Vaadin有两个主要版本,Vaadin 8基于GWT,而较新的Vaadin Flow是基于Java Servlet API的,支持...

    Vaadin简介和HelloWorld中文WORD版

    资源名称:Vaadin简介和HelloWorld 中文WORD版内容简介:本文档主要讲述的是Vaadin简介和HelloWorld;Vaadin(芬兰民间传说中的一种神话生物,是女神也是一种山岭驯鹿的神话祖先) 是一款使用 Apache V2 许可协议的...

    flow-spring-examples:Vaadin和Spring Boot的示例

    Vaadin Spring教程该项目包含有关使用Vaadin和Spring的教程的源代码,以及Spring Boot的帮助。 该教程可以在找到。 本教程项目涵盖的主题: Vaadin Spring的Flow和Spring Boot入门:初始@SpringBootApplication类。 ...

    spring-vaadin-demo:使用Spring Boot的Vaadin的简单应用程序演示

    Vaadin Spring Boot演示这是一个使用生成的小型Vaadin应用程序,它使用JPA和Spring Data存储库来存储数据。 最初在巴塞罗那2015年SpringI / O上展出。 该应用程序具有两个视图:用于列出GPS数据的组件和 。 适用于...

    国外朋友的vaadin和struts2结合的例子

    Vaadin和Struts2是两种不同的Java Web开发框架,它们各自有着独特的特性和用途,但有时为了实现更复杂的业务逻辑或者充分利用两者的优势,开发者会选择将它们结合使用。在这个"国外朋友的vaadin和struts2结合的例子...

    spring-boot-loaded-vaadin:使用Spring Boot + Spring Loaded + Vaadin的测试项目

    测试使用Spring Boot,Spring Loaded和Vaadin启动项目命令行mvn install spring-boot:run并在浏览器中打开在IDE中启动项目选项1,从您的IDE启动spring-boot:run 选项2,启动Application类,在这种情况下,您需要下载...

    ExcelVaadin:在Vaadin + Spring Boot上进行Excel解析

    将Vaadin和Spring Boot整合在一起,可以利用Spring的依赖注入和AOP特性,以及Vaadin的UI优势。项目部署通常通过打包成jar文件完成,可以使用Spring Boot的内置服务器直接启动运行。 7. 示例代码分析 在`ExcelVaadin...

    Vaadin(英文版) 一个使用于事物管理web项目的框架

    Vaadin是一个基于Java的Web开发框架,它的核心特点在于可以像使用Java Swing一样简单地进行Web页面布局和开发。这得益于Vaadin提供的丰富的UI组件库和清晰的框架结构,使得开发者能够在服务器端和客户端上使用Java...

Global site tag (gtag.js) - Google Analytics