spring boot完美集成dwr3.0.2-RELEASE
来源:互联网 发布:怎么做数据透视表 编辑:程序博客网 时间:2024/06/03 09:20
第一步:注册SpringDwrServlet到spring容器中
import java.util.HashMap;import java.util.Map;import org.springframework.boot.web.servlet.ServletRegistrationBean;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.context.annotation.ImportResource;/** * 注册SpringDwrServlet到spring容器中 * * @author 许畅 * @since JDK1.7 * @version 2017年11月28日 许畅 新建 */@Configuration@ImportResource("classpath:dwr-spring-config.xml")public class SpringBootDwrServletRegister { /** * @param springDwrServlet SpringDwrServlet * @return ServletRegistrationBean */ @Bean public ServletRegistrationBean registDwrServlet(SpringDwrServlet springDwrServlet) { ServletRegistrationBean servletRegister = new ServletRegistrationBean(springDwrServlet, "/dwr/*"); Map<String, String> initParameters = new HashMap<String, String>(); initParameters.put("debug", "true"); servletRegister.setInitParameters(initParameters); return servletRegister; } }
import javax.servlet.ServletConfig;import org.directwebremoting.impl.StartupUtil;import org.directwebremoting.spring.DwrSpringServlet;import org.directwebremoting.spring.SpringContainer;import org.springframework.context.ApplicationContext;import org.springframework.stereotype.Component;/** * SpringDwrServlet * * <pre> * 重写DwrSpringServlet使dwr代理的实例在spring容器中 * </pre> * * @author 许畅 * @since JDK1.7 * @version 2017年11月28日 许畅 新建 */@Componentpublic class SpringDwrServlet extends DwrSpringServlet { /** */ private static final long serialVersionUID = 1L; @Override protected SpringContainer createContainer(ServletConfig servletConfig) { ApplicationContext appContext = getApplicationContext(servletConfig.getServletContext()); SpringDwrContainer springContainer = new SpringDwrContainer(); springContainer.setBeanFactory(appContext); StartupUtil.setupDefaultContainer(springContainer, servletConfig); return springContainer; } }
第三步:Spring版本dwr容器
import java.util.Map;import org.directwebremoting.extend.ContainerConfigurationException;import org.directwebremoting.spring.SpringContainer;import org.springframework.beans.factory.ListableBeanFactory;import org.springframework.util.ClassUtils;import com.comtop.cap.common.util.StringUtil;/** * Spring版本dwr容器 * * @author 许畅 * @since JDK1.7 * @version 2017年11月28日 许畅 新建 */public class SpringDwrContainer extends SpringContainer { /** * * @see org.directwebremoting.spring.SpringContainer#addParameter(java.lang.String, java.lang.Object) */ @Override public void addParameter(String askFor, Object valueParam) throws ContainerConfigurationException { try { Class<?> clz = ClassUtils.forName(askFor, ClassUtils.getDefaultClassLoader()); @SuppressWarnings("unchecked") Map<String, Object> beansOfType = (Map<String, Object>) ((ListableBeanFactory) beanFactory) .getBeansOfType(clz); if (beansOfType.isEmpty()) { super.addParameter(askFor, valueParam); } else if (beansOfType.size() > 1) { String key = StringUtil.uncapitalize(SpringDwrServlet.class.getSimpleName()); if (beansOfType.containsKey(key)) { beans.put(askFor, beansOfType.get(key)); } else { throw new ContainerConfigurationException("spring容器中无法找到对应servlet:" + key); } } else { beans.put(askFor, beansOfType.values().iterator().next()); } } catch (ClassNotFoundException ex) { super.addParameter(askFor, valueParam); } }}
第四步:容器扫描配置文件 dwr-spring-config.xml
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:context="http://www.springframework.org/schema/context" xmlns:dwr="http://www.directwebremoting.org/schema/spring-dwr" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd http://www.directwebremoting.org/schema/spring-dwr http://www.directwebremoting.org/schema/spring-dwr-3.0.xsd"> <dwr:configuration /> <dwr:annotation-scan base-package="com.xxx" scanDataTransferObject="true" scanRemoteProxy="true"/> </beans>
总结: dwr这个框架后续人员维护的比较少,有些东西照着官网来还行不通,需要自己看源码重写,但是用起来还是比较方便的,
不清楚的自己看dwr源码,和查看spring boot官网和dwr官网
阅读全文
1 0
- spring boot完美集成dwr3.0.2-RELEASE
- DWR3.0与Spring MVC集成方法
- dwr3.0与Spring mvc的全注解集成方法
- spring boot 1.4.2.RELEASE+Thymeleaf+mybatis 集成通用maper,与分页插件:
- Spring Boot 集成MyBatis
- Spring Boot 集成Swagger
- Spring Boot 集成Mybatis
- Spring Boot 集成Swagger
- spring-boot集成mybatis
- Spring Boot 集成Swagger
- Spring Boot 集成Swagger2
- Spring Boot 集成 log4j2
- spring-boot集成shiro
- spring-boot集成Quartz
- Spring Boot集成Swagger2
- Spring boot集成Mybatis
- spring-boot集成MongoDB
- spring-boot集成ActiveMQ
- 填坑Tensorflow Object Dection API
- 22 简体形
- Vue2.0史上最全入坑教程(上)—— 搭建Vue脚手架(vue-cli)
- C/C++语言为什么要有宏?
- Python序列化——pickle模块
- spring boot完美集成dwr3.0.2-RELEASE
- 解析.properties文件
- ArcGIS Server 站点架构-Web Adaptor
- Eclipse Console 加大显示的行数,禁止弹出
- Nodo登陆注册表单,数据库md5加密
- 51Nod 1024 矩阵中不重复的元素
- spring-data-redis 使用pipeline批量设置过期时间的bug
- ubuntu下环境变量详解 bashrc, profile, environment
- ionic3 实现懒加载方式 ---学习记录