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)然也包括前端和后端直接交互的類(
com.g360.bean.reconsole.opcost.AnnualOpCostRequestController,com.g360.bean.security.SessionExpiredParam
)也是使用注解配置的(Dwr注解配置,包括@RemoteProxy,@RemoteMethod),這對于有些注解配置基礎(chǔ)的同學(xué)來說可能比較容易看懂,對于初次接觸的有什么不懂的可以給我留言哦;
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>
對于com.g360.bean.reconsole.opcost.AnnualOpCostRequestController來說道理一樣,這里就不多做說明了;
對于使用DwrServlet來說要使用純注解配置(不使用dwr.xml)一定要注意在初始化參數(shù)時一定要配置 classes這個參數(shù),而且這個參數(shù)是這個注解類的全路徑名,有多個的話就使用逗號分隔,這個是特別重要的哦,因為Dwr3.0好像還不支持包掃描,不知道是需要什么配置才能實現(xiàn)還是怎么的,如果有哪位仁兄正好看見,也正好知道的話請留言麻煩告訴一下,感激不盡?。g迎大家有什么不明白的地方或者有什么不對的地方,請隨時留言;
- Java BufferedWriter BufferedReader 源碼分析
- Java中BufferedReader與BufferedWriter類的使用示例
- DWR中各種java方法的調(diào)用
- Dwr3.0純注解(純Java Code配置)配置與應(yīng)用淺析三之后端反向調(diào)用前端
- Dwr3.0純注解(純Java Code配置)配置與應(yīng)用淺析二之前端調(diào)用后端
- Java多線程編程之讀寫鎖ReadWriteLock用法實例
- Java并發(fā)編程之顯示鎖ReentrantLock和ReadWriteLock讀寫鎖
- 在DWR中實現(xiàn)直接獲取一個JAVA類的返回值的兩種方法
相關(guān)文章
springboot接口返回數(shù)據(jù)類型全面解析
這篇文章主要介紹了springboot接口返回數(shù)據(jù)類型問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12Java中關(guān)鍵字synchronized的使用方法詳解
synchronized關(guān)鍵字可以作為函數(shù)的修飾符,也可作為函數(shù)內(nèi)的語句,也就是平時說的同步方法和同步語句塊,下面這篇文章主要給大家介紹了關(guān)于Java中synchronized使用的相關(guān)資料,需要的朋友可以參考下2021-08-08淺談springmvc 通過異常增強返回給客戶端統(tǒng)一格式
這篇文章主要介紹了淺談springmvc 通過異常增強返回給客戶端統(tǒng)一格式。具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09詳解在springboot中使用Mybatis Generator的兩種方式
這篇文章主要介紹了詳解在springboot中使用Mybatis Generator的兩種方式,本文將介紹到在springboot的項目中如何去配置和使用MBG以及MBG生成代碼的兩種方式,非常具有實用價值,需要的朋友可以參考下2018-11-11解決MyBatis-Plus使用動態(tài)表名selectPage不生效的問題
這篇文章主要介紹了如惡化解決MyBatis-Plus使用動態(tài)表名selectPage不生效的問題,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2023-11-11