Dwr3.0純注解(純Java Code配置)配置與應(yīng)用淺析一之零配置文件化
//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配置轉(zhuǎn)換為了純Java代碼配置),當(dāng)然也包括前端和后端直接交互的類(lèi)(
com.g360.bean.reconsole.opcost.AnnualOpCostRequestController,com.g360.bean.security.SessionExpiredParam
)也是使用注解配置的(Dwr注解配置,包括@RemoteProxy,@RemoteMethod),這對(duì)于有些注解配置基礎(chǔ)的同學(xué)來(lái)說(shuō)可能比較容易看懂,對(duì)于初次接觸的有什么不懂的可以給我留言哦;
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);
} }
這就是相當(dāng)于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>
對(duì)于com.g360.bean.reconsole.opcost.AnnualOpCostRequestController來(lái)說(shuō)道理一樣,這里就不多做說(shuō)明了;
對(duì)于使用DwrServlet來(lái)說(shuō)要使用純注解配置(不使用dwr.xml)一定要注意在初始化參數(shù)時(shí)一定要配置 classes這個(gè)參數(shù),而且這個(gè)參數(shù)是這個(gè)注解類(lèi)的全路徑名,有多個(gè)的話(huà)就使用逗號(hào)分隔,這個(gè)是特別重要的哦,因?yàn)镈wr3.0好像還不支持包掃描,不知道是需要什么配置才能實(shí)現(xiàn)還是怎么的,如果有哪位仁兄正好看見(jiàn),也正好知道的話(huà)請(qǐng)留言麻煩告訴一下,感激不盡??!歡迎大家有什么不明白的地方或者有什么不對(duì)的地方,請(qǐng)隨時(shí)留言;
- Java BufferedWriter BufferedReader 源碼分析
- Java中BufferedReader與BufferedWriter類(lèi)的使用示例
- DWR中各種java方法的調(diào)用
- Dwr3.0純注解(純Java Code配置)配置與應(yīng)用淺析三之后端反向調(diào)用前端
- Dwr3.0純注解(純Java Code配置)配置與應(yīng)用淺析二之前端調(diào)用后端
- Java多線(xiàn)程編程之讀寫(xiě)鎖ReadWriteLock用法實(shí)例
- Java并發(fā)編程之顯示鎖ReentrantLock和ReadWriteLock讀寫(xiě)鎖
- 在DWR中實(shí)現(xiàn)直接獲取一個(gè)JAVA類(lèi)的返回值的兩種方法
相關(guān)文章
java 非對(duì)稱(chēng)加密算法DH實(shí)現(xiàn)詳解
這篇文章主要介紹了java 非對(duì)稱(chēng)加密算法DH實(shí)現(xiàn)詳解 ,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-07-07
Java中JSON字符串反序列化(動(dòng)態(tài)泛型)
文章討論了在定時(shí)任務(wù)中使用反射調(diào)用目標(biāo)對(duì)象時(shí)處理動(dòng)態(tài)參數(shù)的問(wèn)題,通過(guò)將方法參數(shù)存儲(chǔ)為JSON字符串并進(jìn)行反序列化,可以實(shí)現(xiàn)動(dòng)態(tài)調(diào)用,然而,這種方式容易導(dǎo)致內(nèi)存溢出(OOM),這篇文章主要介紹了JSON字符串反序列化?動(dòng)態(tài)泛型,需要的朋友可以參考下2024-12-12
如何使用MybatisPlus快速進(jìn)行增刪改查詳解
增刪改查在日常開(kāi)發(fā)中是再正常不多的一個(gè)需求了,下面這篇文章主要給大家介紹了關(guān)于如何使用MybatisPlus快速進(jìn)行增刪改查的相關(guān)資料,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Java Set集合及其子類(lèi)HashSet與LinkedHashSet詳解
這篇文章主要介紹了Java Set集合及其子類(lèi)HashSet與LinkedHashSet詳解,文章通過(guò)Set集合存儲(chǔ)原理展開(kāi)文章主題相關(guān)介紹,感興趣的小伙伴可以參考一下2022-06-06
SpringBoot中注冊(cè)Bean的10種方式總結(jié)
在Spring Boot應(yīng)用中,Bean是構(gòu)成應(yīng)用的核心組件,Spring容器負(fù)責(zé)管理這些Bean,包括它們的創(chuàng)建、配置、組裝、管理和銷(xiāo)毀,在Spring Boot中,有多種方式可以注冊(cè)Bean,本文將詳細(xì)介紹這些不同的注冊(cè)方式,并給出相應(yīng)的示例代碼和適用場(chǎng)景,需要的朋友可以參考下2024-08-08
Spring?使用注解存儲(chǔ)和讀取?Bean對(duì)象操作方法
在?Spring?中,要想更加簡(jiǎn)單的實(shí)現(xiàn)對(duì)?Bean?對(duì)象的儲(chǔ)存和使用,其核心就是使用?注解?,本文主要就是演示如何使用注解實(shí)現(xiàn)對(duì)?Bean?對(duì)象的存取操作,感興趣的朋友跟隨小編一起看看吧2023-08-08

