最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java的Spring框架下RMI與quartz的調(diào)用方法

 更新時(shí)間:2015年11月19日 14:42:36   作者:小李飛刀8  
這篇文章主要介紹了Java的Spring框架下RMI與quartz的調(diào)用方法,Spring是Java的SSH三大web開發(fā)框架之一,需要的朋友可以參考下

Spring調(diào)用RMI
RMI(Remote Method Invocation) 遠(yuǎn)程方法調(diào)用,實(shí)現(xiàn)JAVA應(yīng)用之間的遠(yuǎn)程通信。下面介紹使用Spring如何使用RMI。

包的結(jié)構(gòu)如下:

20151119144053013.jpg (268×140)

定義調(diào)用接口

public interface UserDao {

  public String getUser(String username)throws Exception;

}

接口實(shí)現(xiàn)類

public class UserDaoImplimplements UserDao {

  public String getUser(Stringusername)throws Exception {

    return"test:"+username;

  }

}

(1)配置RMI服務(wù):

applicationContext-rmi-server.xml

  <beanid="userDaoImpl"class="com.rmi.UserDaoImpl"/>

  <beanid="userDaoImpl_Exporter"class="org.springframework.remoting.rmi.RmiServiceExporter">

    <propertyname="service"ref="userDaoImpl"/>

    <propertyname="serviceName"value="rmi/userDaoImpl"/>

    <propertyname="serviceInterface"value="com.rmi.UserDao"/>

    <propertyname="registryPort"value="8819"/>

  </bean>

(2)啟動(dòng)RMI服務(wù):

public class RmiServer {

  publicstaticfinal ApplicationContextcontext =new ClassPathXmlApplicationContext("applicationContext-rmi-server.xml");

  publicstaticvoid main(String[] args) {

  }

}

(3)訪問RMI服務(wù)

applicationContext-rmi-client.xml

  <beanid="userDaoImpl_client"class="org.springframework.remoting.rmi.RmiProxyFactoryBean">

    <propertyname="serviceUrl"value="rmi://localhost:8819/rmi/userDaoImpl"/>

    <propertyname="serviceInterface"value="com.rmi.UserDao"/>

    <propertyname="refreshStubOnConnectFailure"value="true"/>

    <propertyname="lookupStubOnStartup"value="false"/>

  </bean>

 

public class RmiClient {

  publicstaticvoid main(String[] args) {

    ApplicationContext context =new ClassPathXmlApplicationContext("applicationContext-rmi-client.xml");

    UserDao userDao = (UserDao)context.getBean("userDaoImpl_client");

    if(userDao !=null){

      try {

       System.out.println(userDao.getUser("li"));

      } catch (Exception e) {

       e.printStackTrace();

      }

    }

  }

}

spring調(diào)用quartz
1.quartz是一個(gè)作業(yè)調(diào)度框架,spring集成的quartz,使用非常方便。

2.編寫執(zhí)行類

import org.springframework.context.ApplicationContext; 
import org.springframework.context.support.ClassPathXmlApplicationContext; 
 
public class QuartzTest { 
 
 public static void main(String[] args) { 
 System.out.println("Test start."); 
    ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext-quartz.xml"); 
    //如果配置文件中將startQuertz bean的lazy-init設(shè)置為false 則不用實(shí)例化 
    //context.getBean("startQuertz"); 
    System.out.print("Test end.."); 
 } 
 
} 

3.編寫配置文件

<!-- 要調(diào)用的工作類 --> 
<bean id="quartzJob" class="com.quartz.QuartzJob"/> 
 
  <!-- 定義調(diào)用對(duì)象和調(diào)用對(duì)象的方法 --> 
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
 <property name="targetObject" ref="quartzJob" /> 
 <property name="targetMethod" value="work" /> 
</bean> 
 
<!-- 定義觸發(fā)時(shí)間 --> 
  <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail"> 
      <ref bean="jobDetail"/> 
    </property> 
    <!-- cron表達(dá)式 --> 
    <property name="cronExpression"> 
     <value>2/5 44-46 22,23 9 9 ? 2012</value> 
     <!--  
      從左到右分別是:秒、分、時(shí)、日、月、年、星期 
      ? 號(hào)只能用在日和周域上,但是不能在這兩個(gè)域上同時(shí)使用。你可以認(rèn)為 ? 字符是 "我并不關(guān)心在該域上是什么值。" 這不同于星號(hào),星號(hào)是指示著該域上的每一個(gè)值。? 是說不為該域指定值。 
     逗號(hào) (,) 是用來在給某個(gè)域上指定一個(gè)值列表的。例如,使用值 0,15,30,45 在秒域上意味著每15秒觸發(fā)一個(gè) trigger。 
     斜杠 (/) 是用于時(shí)間表的遞增的。我們剛剛用了逗號(hào)來表示每15分鐘的遞增,但是我們也能寫成這樣 0/15。 
     中劃線 (-) 用于指定一個(gè)范圍。例如,在小時(shí)域上的 3-8 意味著 "3,4,5,6,7 和 8 點(diǎn)。" 域的值不允許回卷,所以像 50-10 這樣的值是不允許的。 
     星號(hào)(*) 指示著你想在這個(gè)域上包含所有合法的值。例如,在月份域上使用星號(hào)意味著每個(gè)月都會(huì)觸發(fā)這個(gè) trigger。 
     字母L 說明了某域上允許的最后一個(gè)值。它僅被日和周域支持。 
     W 字符代表著平日 (Mon-Fri),并且僅能用于日域中。它用來指定離指定日的最近的一個(gè)平日(非周六日)。 
     # 字符僅能用于周域中。它用于指定月份中的第幾周的哪一天。例如,如果你指定周域的值為 6#3,它意思是某月的第三個(gè)周五 (6=星期五,#3意味著月份中的第三周)。 
      --> 
          </property> 
  </bean> 
   
  <!-- 總管理類 如果將lazy-init='false'那么容器啟動(dòng)就會(huì)執(zhí)行調(diào)度程序 --> 
  <bean id="startQuertz" lazy-init="false" autowire="no" class="org.springframework.scheduling.quartz.SchedulerFactoryBean"> 
    <property name="triggers"> 
      <list> 
        <ref bean="doTime"/> 
      </list> 
    </property> 
  </bean>  

4.關(guān)于cronExpression表達(dá)式

<!-- cron表達(dá)式 -->  
<property name="cronExpression"> <value>2/5 44-46 22,23 9 9 ? 2012</value> 
<!--  
  從左到右分別是:秒、分、時(shí)、日、月、年、星期 ? 號(hào)只能用在日和周域上,但是不能在這兩個(gè)域上同時(shí)使用。 
  你可以認(rèn)為 ? 字符是 "我并不關(guān)心在該域上是什么值。" 這不同于星號(hào),星號(hào)是指示著該域上的每一個(gè)值。 
  ? 是說不為該域指定值。  
  逗號(hào) (,) 是用來在給某個(gè)域上指定一個(gè)值列表的。例如,使用值 0,15,30,45 在秒域上意味著每15秒觸發(fā)一個(gè) trigger。  
  斜杠 (/) 是用于時(shí)間表的遞增的。我們剛剛用了逗號(hào)來表示每15分鐘的遞增,但是我們也能寫成這樣 0/15。  
  中劃線 (-) 用于指定一個(gè)范圍。例如,在小時(shí)域上的 3-8 意味著 "3,4,5,6,7 和 8 點(diǎn)。" 域的值不允許回卷,所以像 50-10 這樣的值是不允許的。  
  星號(hào)(*) 指示著你想在這個(gè)域上包含所有合法的值。例如,在月份域上使用星號(hào)意味著每個(gè)月都會(huì)觸發(fā)這個(gè) trigger。  
  字母L 說明了某域上允許的最后一個(gè)值。它僅被日和周域支持。  
  W 字符代表著平日 (Mon-Fri),并且僅能用于日域中。它用來指定離指定日的最近的一個(gè)平日(非周六日)。  
  # 字符僅能用于周域中。它用于指定月份中的第幾周的哪一天。例如,如果你指定周域的值為 6#3,它意思是某月的第三個(gè)周五 (6=星期五,#3意味著月份中的第三周)。  
--> 

相關(guān)文章

  • 在windows下揪出java程序占用cpu很高的線程并完美解決

    在windows下揪出java程序占用cpu很高的線程并完美解決

    這篇文章主要介紹了在windows下揪出java程序占用cpu很高的線程并完美解決,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-01-01
  • Spring項(xiàng)目里將SQL語句寫在.sql文件中的方法

    Spring項(xiàng)目里將SQL語句寫在.sql文件中的方法

    這篇文章主要介紹了Spring項(xiàng)目里如何將SQL語句寫在.sql文件中的方法,文中給出了詳細(xì)的介紹和示例代碼,相信對(duì)大家的學(xué)習(xí)或者工作具有一定的參考借鑒價(jià)值,有需要的朋友們下面來一起看看吧。
    2017-01-01
  • SpringBoot利用dag加速Spring beans初始化的方法示例

    SpringBoot利用dag加速Spring beans初始化的方法示例

    本文介紹了利用DAG加速SpringBoot中Spring beans初始化,先解釋了DAG 概念及特性,包括節(jié)點(diǎn)入度出度、拓?fù)渑判虻?接著闡述加速Spring Bean初始化的實(shí)現(xiàn)思路,如識(shí)別依賴關(guān)系構(gòu)建DAG、拓?fù)渑判?、并行初始化Bean及與Spring集成,還展示了相關(guān)代碼工程、測試結(jié)果及引用
    2024-12-12
  • Java中的包裝類是什么

    Java中的包裝類是什么

    這篇文章主要介紹了Java中的包裝類是什么,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • 詳解IDEA中SpringBoot整合Servlet三大組件的過程

    詳解IDEA中SpringBoot整合Servlet三大組件的過程

    這篇文章主要介紹了詳解IDEA中SpringBoot整合Servlet三大組件的過程,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-11-11
  • Java簡單實(shí)現(xiàn)調(diào)用命令行并獲取執(zhí)行結(jié)果示例

    Java簡單實(shí)現(xiàn)調(diào)用命令行并獲取執(zhí)行結(jié)果示例

    這篇文章主要介紹了Java簡單實(shí)現(xiàn)調(diào)用命令行并獲取執(zhí)行結(jié)果,結(jié)合實(shí)例形式分析了Java調(diào)用ping命令并獲取執(zhí)行結(jié)果相關(guān)操作技巧,需要的朋友可以參考下
    2018-08-08
  • 關(guān)于Struts2文件上傳與自定義攔截器

    關(guān)于Struts2文件上傳與自定義攔截器

    本篇文章,小編將為大家介紹關(guān)于Struts2文件上傳與自定義攔截器,有需要的朋友可以參考一下
    2013-04-04
  • 利用Lambda表達(dá)式創(chuàng)建新線程案例

    利用Lambda表達(dá)式創(chuàng)建新線程案例

    這篇文章主要介紹了利用Lambda表達(dá)式創(chuàng)建新線程案例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-08-08
  • 解決tk.mybatis中寫自定義的mapper的問題

    解決tk.mybatis中寫自定義的mapper的問題

    這篇文章主要介紹了使用tk.mybatis中寫自定義的mapper的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-06-06
  • JavaMap兩種遍歷方式keySet與entrySet詳解

    JavaMap兩種遍歷方式keySet與entrySet詳解

    這篇文章主要介紹了JavaMap兩種遍歷方式keySet與entrySet,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧
    2023-03-03

最新評(píng)論

新津县| 东丽区| 东乌珠穆沁旗| 东丽区| 南宫市| 恭城| 滁州市| 惠安县| 登封市| 新兴县| 襄樊市| 巨野县| 鄄城县| 兴宁市| 高台县| 松溪县| 沁阳市| 焉耆| 大足县| 惠东县| 正宁县| 铁岭县| 华宁县| 莱芜市| 墨江| 潞西市| 嘉定区| 康马县| 孙吴县| 濮阳县| 富阳市| 甘谷县| 扶风县| 宁波市| 尚义县| 桃江县| 丰县| 安乡县| 五台县| 白山市| 康乐县|