程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> Java的Spring框架下RMI與quartz的挪用辦法

Java的Spring框架下RMI與quartz的挪用辦法

編輯:關於JAVA

Java的Spring框架下RMI與quartz的挪用辦法。本站提示廣大學習愛好者:(Java的Spring框架下RMI與quartz的挪用辦法)文章只能為提供參考,不一定能成為您想要的結果。以下是Java的Spring框架下RMI與quartz的挪用辦法正文


Spring挪用RMI
RMI(Remote Method Invocation) 長途辦法挪用,完成JAVA運用之間的長途通訊。上面引見應用Spring若何應用RMI。

包的構造以下:

界說挪用接口

public interface UserDao {

  public String getUser(String username)throws Exception;

}

接話柄現類

public class UserDaoImplimplements UserDao {

  public String getUser(Stringusername)throws Exception {

    return"test:"+username;

  }

}

(1)設置裝備擺設RMI辦事:

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)啟動RMI辦事:

public class RmiServer {

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

  publicstaticvoid main(String[] args) {

  }

}

(3)拜訪RMI辦事

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挪用quartz
1.quartz是一個功課調劑框架,spring集成的quartz,應用異常便利。

2.編寫履行類

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設置為false 則不消實例化 
    //context.getBean("startQuertz"); 
    System.out.print("Test end.."); 
 } 
 
} 

3.編寫設置裝備擺設文件

<!-- 要挪用的任務類 --> 
<bean id="quartzJob" class="com.quartz.QuartzJob"/> 
 
  <!-- 界說挪用對象和挪用對象的辦法 --> 
<bean id="jobDetail" class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"> 
 <property name="targetObject" ref="quartzJob" /> 
 <property name="targetMethod" value="work" /> 
</bean> 
 
<!-- 界說觸發時光 --> 
  <bean id="doTime" class="org.springframework.scheduling.quartz.CronTriggerBean"> 
    <property name="jobDetail"> 
      <ref bean="jobDetail"/> 
    </property> 
    <!-- cron表達式 --> 
    <property name="cronExpression"> 
     <value>2/5 44-46 22,23 9 9 ? 2012</value> 
     <!--  
      從左到右分離是:秒、分、時、日、月、年、禮拜 
      ? 號只能用在日和周域上,然則不克不及在這兩個域上同時應用。你可以以為 ? 字符是 "我其實不關懷在該域上是甚麼值。" 這分歧於星號,星號是指導著該域上的每個值。? 是說不為該域指定值。 
     逗號 (,) 是用來在給某個域上指定一個值列表的。例如,應用值 0,15,30,45 在秒域上意味著每15秒觸發一個 trigger。 
     斜槓 (/) 是用於時光表的遞增的。我們方才用了逗號來表現每15分鐘的遞增,然則我們也能寫成如許 0/15。 
     中劃線 (-) 用於指定一個規模。例如,在小時域上的 3-8 意味著 "3,4,5,6,7 和 8 點。" 域的值不許可回卷,所以像 50-10 如許的值是不許可的。 
     星號(*) 指導著你想在這個域上包括一切正當的值。例如,在月份域上應用星號意味著每一個月都邑觸發這個 trigger。 
     字母L 解釋了某域上許可的最初一個值。它僅被日和周域支撐。 
     W 字符代表著常日 (Mon-Fri),而且僅能用於日域中。它用來指定離指定日的比來的一個常日(非周六日)。 
     # 字符僅能用於周域中。它用於指定月份中的第幾周的哪一天。例如,假如你指定周域的值為 6#3,它意思是某月的第三個周五 (6=禮拜五,#3意味著月份中的第三周)。 
      --> 
          </property> 
  </bean> 
   
  <!-- 總治理類 假如將lazy-init='false'那末容器啟動就會履行調劑法式 --> 
  <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.關於cronExpression表達式

<!-- cron表達式 -->  
<property name="cronExpression"> <value>2/5 44-46 22,23 9 9 ? 2012</value> 
<!--  
  從左到右分離是:秒、分、時、日、月、年、禮拜 ? 號只能用在日和周域上,然則不克不及在這兩個域上同時應用。 
  你可以以為 ? 字符是 "我其實不關懷在該域上是甚麼值。" 這分歧於星號,星號是指導著該域上的每個值。 
  ? 是說不為該域指定值。  
  逗號 (,) 是用來在給某個域上指定一個值列表的。例如,應用值 0,15,30,45 在秒域上意味著每15秒觸發一個 trigger。  
  斜槓 (/) 是用於時光表的遞增的。我們方才用了逗號來表現每15分鐘的遞增,然則我們也能寫成如許 0/15。  
  中劃線 (-) 用於指定一個規模。例如,在小時域上的 3-8 意味著 "3,4,5,6,7 和 8 點。" 域的值不許可回卷,所以像 50-10 如許的值是不許可的。  
  星號(*) 指導著你想在這個域上包括一切正當的值。例如,在月份域上應用星號意味著每一個月都邑觸發這個 trigger。  
  字母L 解釋了某域上許可的最初一個值。它僅被日和周域支撐。  
  W 字符代表著常日 (Mon-Fri),而且僅能用於日域中。它用來指定離指定日的比來的一個常日(非周六日)。  
  # 字符僅能用於周域中。它用於指定月份中的第幾周的哪一天。例如,假如你指定周域的值為 6#3,它意思是某月的第三個周五 (6=禮拜五,#3意味著月份中的第三周)。  
--> 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved