Dwr3.0纯注解(纯Java Code配置)配置与应用浅析一之零配置文件化

作者:源-代码 时间:2022-06-05 05:20:17 


//Annotation configuration dwr servletprivate void initializeDwrServlet(ServletContext container)
{DwrServlet dwrServlet = new DwrServlet();
ServletRegistration.Dynamic dynamic = container.addServlet("dwr-invoker", dwrServlet    );
dynamic.setLoadOnStartup(2);
dynamic.setInitParameter("debug", "true");
dynamic.setInitParameter("pollAndCometEnabled", "true");
dynamic.setInitParameter("activeReverseAjaxEnabled", "true");
dynamic.setInitParameter("maxWaitAfterWrite", "1800000");
dynamic.setInitParameter("disconnectedTime", "60000");
dynamic.setInitParameter("classes", dwrAnnotationClasssConfiguration());
dynamic.addMapping("/dwr/*");}
// Configure Dwr Annotation Classes,comma separatedprivate String dwrAnnotationClasssConfiguration() {
StringBuffer config = new StringBuffer();
config.append("com.g360.bean.reconsole.opcost.AnnualOpCostRequestController");
config.append(",");config.append("com.g360.bean.security.SessionExpiredParam");
return config.toString();}

上面我的配置是基于注解版的Dwr Servlet配置(将web.xml里面的servlet配置转换为了纯Java代码配置),当然也包括前端和后端直接交互的类(

com.g360.bean.reconsole.opcost.AnnualOpCostRequestController,com.g360.bean.security.SessionExpiredParam

)也是使用注解配置的(Dwr注解配置,包括@RemoteProxy,@RemoteMethod),这对于有些注解配置基础的同学来说可能比较容易看懂,对于初次接触的有什么不懂的可以给我留言哦;

com.g360.bean.security.SessionExpiredParam的注解配置如下所示:


@Component("sessionExpiredParam")
@RemoteProxy(creator = SpringCreator.class, scope = ScriptScope.APPLICATION, name = "remote", creatorParams = @Param(name = "beanName", value = "sessionExpiredParam"))
public class SessionExpiredParam{
private static final Logger LOGGER = LoggerFactory.getLogger(SessionExpiredParam.class);
public boolean isSessionExpire (String sessionId) {
return null == ConstantCacheService.getCacheConstant(sessionId); }
@RemoteMethod public void setEnableDwrUpdate(String sessionId) {
 ScriptSession scriptSession = WebContextFactory.get().getScriptSession();
String jsessionId = scriptSession.getHttpSessionId();
String dwrSessionId = scriptSession.getId();
LOGGER.info(String.format("set jsessionId = [%s],dwrsession = [%s] push enabled",jsessionId,dwrSessionId));
ConstantCacheService.putCacheConstant(Constants.PUSH_ID+jsessionId, dwrSessionId);
} }

这就是相当于dwr.xml配置文件中如下所示:


<!DOCTYPE dwr PUBLIC "-//GetAhead Limited//DTD Direct Web Remoting 3.0//EN" "http://getahead.org/dwr/dwr30.dtd"><dwr>
<allow> <create creator="new" javascript="remote" scope="application">  
<param name="class" value="com.g360.bean.security.SessionExpiredParam"/>
</create> </allow></dwr>

对于com.g360.bean.reconsole.opcost.AnnualOpCostRequestController来说道理一样,这里就不多做说明了;

对于使用DwrServlet来说要使用纯注解配置(不使用dwr.xml)一定要注意在初始化参数时一定要配置 classes这个参数,而且这个参数是这个注解类的全路径名,有多个的话就使用逗号分隔,这个是特别重要的哦,因为Dwr3.0好像还不支持包扫描,不知道是需要什么配置才能实现还是怎么的,如果有哪位仁兄正好看见,也正好知道的话请留言麻烦告诉一下,感激不尽啊!欢迎大家有什么不明白的地方或者有什么不对的地方,请随时留言;

标签:Dwr3.0
0
投稿

猜你喜欢

  • Spring Boot中使用Redis实战案例

    2021-06-03 04:17:04
  • 浅析C#的复制和克隆

    2022-08-30 15:27:13
  • 使用Flutter实现一个走马灯布局的示例代码

    2023-06-19 03:50:03
  • SpringBoot 集成 activiti的示例代码

    2023-01-22 10:22:03
  • android使用gesturedetector手势识别示例分享

    2023-08-08 15:06:11
  • C# 如何调用SAP RFC

    2023-07-02 18:11:42
  • 简单实现Java web服务器

    2023-10-11 16:47:13
  • java对象转换String类型的三种方法

    2023-11-09 15:50:59
  • java后台接受到图片后保存方法

    2023-06-03 09:23:04
  • springMvc请求的跳转和传值的方法

    2023-02-06 17:29:56
  • Jenkins一键打包部署SpringBoot应用

    2022-08-03 16:37:18
  • c# 给pdf添加数字签名的步骤

    2022-04-05 17:58:01
  • Java字符串查找的三种方式

    2023-11-18 22:00:30
  • java睡眠排序算法示例实现

    2022-04-01 00:13:32
  • 关于mybatis3中@SelectProvider的使用问题

    2021-11-20 17:03:19
  • MyBatis查询结果resultType返回值类型的说明

    2021-10-25 21:37:39
  • spring拓展之如何定义自己的namespace

    2022-01-12 05:13:33
  • MyBatis多表关联查询的实现示例

    2023-07-06 06:26:49
  • 详解在LINUX上部署带有JAR包的JAVA项目

    2022-12-30 21:07:14
  • C#实现读取指定盘符硬盘序列号的方法

    2023-05-23 15:06:39
  • asp之家 软件编程 m.aspxhome.com