Panggilan Musim Semi RMI
RMI (Doa Metode Jauh) Metode jarak jauh Panggilan untuk mewujudkan komunikasi jarak jauh antara aplikasi Java. Berikut ini menjelaskan cara menggunakan RMI menggunakan Spring.
Struktur paket adalah sebagai berikut:
Tentukan Antarmuka Panggilan
Public Interface userdao {public string getUser (string username) melempar pengecualian;}Kelas implementasi antarmuka
Public UserdaoImplIMPLES USERDAO {PUBLIK GetUser (StringUserName) Melempar Exception {return "test:"+username;(1) Mengkonfigurasi Layanan RMI:
ApplicationContext-rmi-server.xml <beanid = "userdaoImpl" class = "com.rmi.userdaoImpl"/> <beanid = "UserdaoImpl_exporter" class = "org.springframework ename "value =" rmi/userdaoImpl "/> <propertyname =" serviceInterface "value =" com.rmi.userdao "/> <propertyname = "registryport" value = "8819"/> </tac>
(2) Mulai Layanan RMI:
kelas publik rmiserver {publicstaticfinal applicationContextContext = new ClassPathXMLapPlicationContext ("ApplicationContext-rmi-server.xml");(3) Akses Layanan RMI
ApplicationContext-rmi-client.xml <beanid = "userdaoImpl_client" class = "org.springframework.remoting.rmi.rmiproxyfactorybean"> <Properties = "serviceUrl" value = "rmi: // localhost: 8819/rmonypony (8819/rMICYM/RMI/RMI: // LocalHost: 8819/RMICY =" RMI/RMI: // LocalHost: 8819/RMICYPERIC/RMI/RMI://8819 i.userdao "/> <propertiyname =" refreshstubonconnectFailure "value =" true "/> <propertyname =" lookupstubonsartup "value =" false "/> </tewel> kelas publik rmiclient {publicstaticvoid main (string [] args) {applicationContext context = new classpathxmlapplicationContext ("applicationContext-rmi-client.xml"); n (userdao.getUser ("li")); }} kuarsa panggilan musim semi
1. Quartz adalah kerangka penjadwalan pekerjaan, kuarsa terintegrasi dengan Spring, yang sangat nyaman digunakan.
2. Tulis kelas eksekusi
impor. artz.xml "); // Jika init malas dari startquetz bean diatur ke false dalam file konfigurasi Maka tidak perlu instantiate //context.getbean("Startquertz ");3. Tulis file konfigurasi
<!-Kelas pekerja untuk dihubungi-> <bean id = "quartzjob" /> <!-Tentukan metode objek panggilan dan objek panggilan-> <bean id = "jobdetail"> <nama properti = "targetObject" ref = "kuarsa" /name <a name lefte "name lean =" name lean = "quartzjob" ail "> <ref bean =" jobdetail "/> </propert> <!-cron ekspresi-> <name properti =" cronexpression "> <value> 2/5 44-46 22,23 9 9? Bisakah Anda berpikir? ? berarti tidak ada nilai yang ditentukan untuk bidang ini. Koma (,) digunakan untuk menentukan daftar nilai ke bidang. Misalnya, menggunakan nilai 0,15,30,45 di bidang kedua berarti bahwa pemicu dipicu setiap 15 detik. Slash (/) digunakan untuk jadwal tambahan. Kami hanya menggunakan koma untuk mewakili peningkatan setiap 15 menit, tetapi kami juga dapat menulisnya sebagai 0/15. Scribble (-) digunakan untuk menentukan rentang. Misalnya, 3-8 pada domain jam berarti "3, 4, 5, 6, 7 dan 8 poin." Tanda bintang (*) menunjukkan bahwa Anda ingin memasukkan semua nilai hukum di bidang ini. Misalnya, menggunakan tanda bintang pada domain bulan berarti pemicu ini akan dipicu setiap bulan. Huruf L menunjukkan nilai terakhir yang diizinkan di bidang. Ini hanya didukung oleh domain harian dan mingguan. Karakter W mewakili hari kerja (Senin-Jumat) dan hanya dapat digunakan dalam domain harian. Ini digunakan untuk menentukan hari kerja yang paling dekat dengan hari yang ditentukan (non-Sabtu). # Karakter hanya dapat digunakan dalam domain perifer. Ini digunakan untuk menentukan hari mana dalam seminggu dalam satu bulan yang ditentukan. Misalnya, jika Anda menentukan nilai bidang mingguan menjadi 6 #3, itu berarti Jumat ketiga dari bulan tertentu (6 = Jumat, #3 berarti minggu ketiga dalam sebulan). --> </property> </bean> <!-- General management class If lazy-init='false' is used, the container will execute the scheduler --> <bean id="startQuertz" lazy-init="false" autowire="no"> <property name="triggers"> <list> <ref bean="doTime"/> </list> </property> </bean>
4. Tentang Ekspresi Cronexpression
<!-CRON Expression-> <Name Properti = "Cronexpression"> <value> 2/5 44-46 22,23 9 9? Bisakah Anda berpikir? ? berarti tidak ada nilai yang ditentukan untuk bidang ini. Koma (,) digunakan untuk menentukan daftar nilai ke bidang. Misalnya, menggunakan nilai 0,15,30,45 di bidang kedua berarti bahwa pemicu dipicu setiap 15 detik. Slash (/) digunakan untuk jadwal tambahan. Kami hanya menggunakan koma untuk mewakili peningkatan setiap 15 menit, tetapi kami juga dapat menulisnya sebagai 0/15. Scribble (-) digunakan untuk menentukan rentang. Misalnya, 3-8 pada domain jam berarti "3, 4, 5, 6, 7 dan 8 poin." Tanda bintang (*) menunjukkan bahwa Anda ingin memasukkan semua nilai hukum di bidang ini. Misalnya, menggunakan tanda bintang pada domain bulan berarti pemicu ini akan dipicu setiap bulan. Huruf L menunjukkan nilai terakhir yang diizinkan di bidang. Ini hanya didukung oleh domain harian dan mingguan. Karakter W mewakili hari kerja (Senin-Jumat) dan hanya dapat digunakan dalam domain harian. Ini digunakan untuk menentukan hari kerja yang paling dekat dengan hari yang ditentukan (non-Sabtu). # Karakter hanya dapat digunakan dalam domain perifer. Ini digunakan untuk menentukan hari mana dalam seminggu dalam satu bulan yang ditentukan. Misalnya, jika Anda menentukan nilai bidang mingguan menjadi 6 #3, itu berarti Jumat ketiga dari bulan tertentu (6 = Jumat, #3 berarti minggu ketiga dalam sebulan). ->