Frühling ruft RMI an
RMI (Remote -Methode -Aufruf) Remote -Methode -Aufruf zur Realisierung der Remote -Kommunikation zwischen Java -Anwendungen. Im Folgenden wird beschrieben, wie RMI mit Feder verwendet werden.
Die Struktur des Pakets lautet wie folgt:
Definieren Sie die Anrufoberfläche
public interface userdao {public String getUser (String Benutzername) löst Ausnahme aus;}Schnittstellen -Implementierungsklasse
public class userDaoImplimples userDao {public String GetUser (StringUserName) löst Ausnahme aus {return "test:"+userername; }}(1) RMI -Dienst konfigurieren:
applicationContext-rmi-server.xml <beanid = "userDaoImpl" class = "com.rmi.userdaoImpl"/> <beanid = "userDaoImpl_exporter" class = "org.springFramework.remoting.rmi.rmiservicexporporter" <> <SpringFramework "userda.rmiservicePorter"> < <PropertyName = "serviceName" value = "rmi/userDaOImpl"/> <propertyName = "serviceInterface" value = "com.rmi.userdao"/> <propertyName = "RegistrationPort" value = "8819"/> </bean>
(2) RMI -Service starten:
public class rmiserver {publicStaticFinal applicationContextContext = new classSpathXmlApplicationContext ("applicationContext-rmi-server.xml"); publicStaticVoid main (String [] args) {}}(3) Zugang zu RMI -Diensten
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! } catch (Ausnahme e) {e.printstacktrace (); }}}} Frühlingsanruf Quarz
1.quartz ist ein Job -Planungs -Framework, Quartz integriert in die Spring, die sehr bequem zu bedienen ist.
2. Schreiben Sie Ausführungsklassen
import org.springframework.context.ApplicationContext; import org.springframework.context.support.classPathXmlApplicationContext; public class quartzest {public static void main (String [] args) {System.out.println ("Teststart"); ApplicationContext context = new classPathXmlApplicationContext ("ApplicationContext-quartz.xml"); // Wenn der Lazy-Init der StartQuetz-Bean in der Konfigurationsdatei auf False eingestellt ist, müssen //context.getbean("StartQuertz "nicht instanziiert werden"); System.out.print ("Testend .."); }}3. Schreiben Sie Konfigurationsdateien
<!-Arbeiterklasse aufzurufen-> <bean id = "quartzjob" /> <!-Definieren Sie die Methode, Objekte aufzurufen und Objekte aufzurufen-> <bean id = "JobDetail"> <Eigenschaft name = "targetObject" ref = "quartzjob" /> <Eigentum name = "targetMethod" value = ". name = "JobDetail"> <ref bean = "JobDetail"/> </property> <!-Cron Ausdruck-> <Eigenschaft name = "cronexpression"> <wert> 2/5 44-46 22,23 9 9? 2012 </value> <!- Von links nach rechts sind: Sekunden, Minuten, Zeit, Tag, Monat, Jahr und Woche? Die Zahlen können nur in den Tagen und in der Woche verwendet werden, können jedoch nicht gleichzeitig in diesen beiden Domänen verwendet werden. Kannst du denken? Der Charakter ist "Es ist mir egal, welcher Wert auf dem Feld ist." Dies unterscheidet sich von einem Sternchen, der jeden Wert auf dem Feld angibt. ? bedeutet, dass für dieses Feld kein Wert angegeben wird. Ein Komma (,) wird verwendet, um eine Liste von Werten in einem Feld anzugeben. Wenn Sie beispielsweise die Werte von 0,15,30,45 im zweiten Feld unter Verwendung von Werten 0,15,45 ausgelöst werden, wird alle 15 Sekunden ein Trigger ausgelöst. Schrägstriche (/) werden für inkrementelle Zeitpläne verwendet. Wir haben nur Kommas verwendet, um Inkremente alle 15 Minuten darzustellen, aber wir können sie auch als 0/15 schreiben. Scribble (-) wird verwendet, um einen Bereich anzugeben. Zum Beispiel bedeutet 3-8 auf der Stundendomäne "3, 4, 5, 6, 7 und 8 Punkte". Die Werte der Domäne erlauben nicht das Zurückspulen, sodass Werte wie 50-10 nicht zulässig sind. Das Sternchen (*) gibt an, dass Sie alle rechtlichen Werte in diesem Bereich aufnehmen möchten. Beispielsweise bedeutet die Verwendung eines Sternchens in der Monatsdomäne, dass dieser Auslöser jeden Monat ausgelöst wird. Der Buchstabe L gibt den letzten Wert an, der auf einem Feld zulässig ist. Es wird nur von den täglichen und wöchentlichen Bereichen unterstützt. Der W-Charakter repräsentiert Wochentage (Mon-Fr) und kann nur im täglichen Bereich verwendet werden. Es wird verwendet, um den Wochentag zu geben, der dem angegebenen Tag am nächsten liegt (nicht abgesollt). # Zeichen können nur in der peripheren Domäne verwendet werden. Es wird verwendet, um an welchem Wochentag in einem bestimmten Monat. Wenn Sie beispielsweise den Wert des wöchentlichen Feldes auf 6 #3 angeben, bedeutet dies den dritten Freitag eines bestimmten Monats (6 = Freitag, #3 bedeutet die dritte Woche des Monats). -> </property> </bean> <!-Allgemeine Verwaltungsklasse Wenn Lazy-init = 'false' verwendet wird, wird der Container den Scheduler ausführen-> <bean id = "startQuertz" Lazy-init = "false" autoWire = "no"> <Property name = "Trigger"> <list> <ref bean
4. Über Cronexpressionsausdrücke
<!-Cron Expression-> <Eigenschaft name = "cronexpression"> <wert> 2/5 44-46 22,23 9 9? 2012 </value> <!- Von links nach rechts sind: Sekunden, Minuten, Zeit, Tag, Monat, Jahr und Woche? Die Zahlen können nur in den Tagen und in der Woche verwendet werden, können jedoch nicht gleichzeitig in diesen beiden Domänen verwendet werden. Kannst du denken? Der Charakter ist "Es ist mir egal, welcher Wert auf dem Feld ist." Dies unterscheidet sich von einem Sternchen, der jeden Wert auf dem Feld angibt. ? bedeutet, dass für dieses Feld kein Wert angegeben wird. Ein Komma (,) wird verwendet, um eine Liste von Werten in einem Feld anzugeben. Wenn Sie beispielsweise die Werte von 0,15,30,45 im zweiten Feld unter Verwendung von Werten 0,15,45 ausgelöst werden, wird alle 15 Sekunden ein Trigger ausgelöst. Schrägstriche (/) werden für inkrementelle Zeitpläne verwendet. Wir haben nur Kommas verwendet, um Inkremente alle 15 Minuten darzustellen, aber wir können sie auch als 0/15 schreiben. Scribble (-) wird verwendet, um einen Bereich anzugeben. Zum Beispiel bedeutet 3-8 auf der Stundendomäne "3, 4, 5, 6, 7 und 8 Punkte". Die Werte der Domäne erlauben nicht das Zurückspulen, sodass Werte wie 50-10 nicht zulässig sind. Das Sternchen (*) gibt an, dass Sie alle rechtlichen Werte in diesem Bereich aufnehmen möchten. Beispielsweise bedeutet die Verwendung eines Sternchens in der Monatsdomäne, dass dieser Auslöser jeden Monat ausgelöst wird. Der Buchstabe L gibt den letzten Wert an, der auf einem Feld zulässig ist. Es wird nur von den täglichen und wöchentlichen Bereichen unterstützt. Der W-Charakter repräsentiert Wochentage (Mon-Fr) und kann nur im täglichen Bereich verwendet werden. Es wird verwendet, um den Wochentag zu geben, der dem angegebenen Tag am nächsten liegt (nicht abgesollt). # Zeichen können nur in der peripheren Domäne verwendet werden. Es wird verwendet, um an welchem Wochentag in einem bestimmten Monat. Wenn Sie beispielsweise den Wert des wöchentlichen Feldes auf 6 #3 angeben, bedeutet dies den dritten Freitag eines bestimmten Monats (6 = Freitag, #3 bedeutet die dritte Woche des Monats). ->