Весенние звонки RMI
RMI (удаленный метод вызов) Вызов удаленного метода, чтобы реализовать удаленную связь между Java -приложениями. Следующее описывает, как использовать RMI с помощью Spring.
Структура упаковки заключается в следующем:
Определите вызывающий интерфейс
public interface userdao {public String getUser (string username) выбрасывает исключение;}Класс реализации интерфейса
открытый класс userDaoImplimplis userDao {public String getUser (stringUserme) Throws exection {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 = "refermoting.rmi.rmiserviceexporter"> <propertyname = "refermoting.rmi.rmiserviceexporter"> <propertyname = "refermpl <propertyname = "serviceName" value = "rmi/userDaoImpl"/> <propertyName = "serviceInterface" value = "com.rmi.userdao"/> <propertyname = "Registryport" value = "8819"/> </bean>
(2) Начать обслуживание RMI:
открытый класс rmiserver {publicstaticfinal applicateContextContext = 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/userDaiumpl"/> <propertyname = "serviceInterface" value = "com.rmi.userdao"/> <propertyname = "refreshstubonconnectfailure" value = "true"/> <propertyname = "LookupStubonStartup" value = "false"/> </bean> public class rmiclient {publicstaticvoid main (string [] args) Classpathxmlapplication context ("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 (); }}}} Весенний звонок кварц
1. Quartz - это структура планирования заданий, кварц, интегрированный с пружиной, которая очень удобна в использовании.
2. Напишите классы выполнения
Импорт org.springframework.context.applicationContext; Import org.springframework.context.support.classpathxmlapplicationContext; открытый класс quartztest {public static void main (string [] args) {System.out.println ("Test Start."); ApplicationContext context = new ClassPathxMlapplicationContext ("ApplicationContext-quartz.xml"); // Если Lazy-Init of the Startquetz Bean установлен на false в файле конфигурации, то нет необходимости создавать экземпляр //context.getbean("startquertz "); System.out.print ("Test End .."); }}3. Написать файлы конфигурации
<!-Рабочий класс для вызова-> <bean id = "quartzjob" /> <!-Определите метод для вызова объектов и вызовов объектов-> <bean id = "jobdetail"> <name = "targetObject" ref = "Quartzjob" /> <Property name = "targetMethod" value = " /> < /bean> <! name = "jobdetail"> <ref bean = "jobdetail"/> </property> <!-Cron Expression-> <Property Name = "cronexpression"> <Значение> 2/5 44-46 22,23 9 9? 2012 </value> <!- Слева направо: секунды, минуты, время, день, месяц, год и неделя? Цифры могут использоваться только в доменах дня и недели, но не могут использоваться одновременно в этих двух доменах. Вы можете подумать? Персонаж: «Мне все равно, какая ценность на поле». Это отличается от звездочки, что указывает на каждое значение на поле. ? означает, что для этого поля не указано значение. Запятая (,) используется для указания списка значений в поле. Например, использование значений 0,15,30,45 во втором поле означает, что триггер запускается каждые 15 секунд. Слечения (/) используются для постепенных графиков. Мы просто использовали запятые, чтобы представлять приращения каждые 15 минут, но мы также можем написать их как 0/15. Scribble (-) используется для указания диапазона. Например, 3-8 в часовой области означает «3, 4, 5, 6, 7 и 8 баллов». Значения домена не допускают перемотку, поэтому значения, такие как 50-10, не допускаются. Звездочка (*) указывает на то, что вы хотите включить все юридические значения в эту область. Например, использование звездочки в домене месяца означает, что этот триггер будет запускаться каждый месяц. Буква L указывает последнее значение, разрешенное в поле. Это поддерживается только ежедневными и еженедельными доменами. Персонаж W представляет собой будние дни (пн-пт) и может использоваться только в ежедневной области. Он используется, чтобы указать будний день, ближайший к указанному дню (без предварительного дня). # символы могут использоваться только в периферийном домене. Он используется, чтобы указать, какой день недели в указанном месяце. Например, если вы указываете значение еженедельного поля, которое составляет 6 #3, это означает третью пятницу определенного месяца (6 = пятница, № 3 означает третью неделю месяца). -> </property> </bean> <!-Общий класс управления, если lazy-init = 'false' используется, контейнер выполнит планировщик-> <bean id = "startquertz" lazy-init = "false" autowire = "no"> <property name = "triggers"> <silece> <ref bean = "/> </list> </property> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean> </bean>
4. О выражениях Cronexpression
<!-выражение Cron-> <name = "cronexpression"> <значение> 2/5 44-46 22,23 9 9? 2012 </value> <!- Слева направо: секунды, минуты, время, день, месяц, год и неделя? Цифры могут использоваться только в доменах дня и недели, но не могут использоваться одновременно в этих двух доменах. Вы можете подумать? Персонаж: «Мне все равно, какая ценность на поле». Это отличается от звездочки, что указывает на каждое значение на поле. ? означает, что для этого поля не указано значение. Запятая (,) используется для указания списка значений в поле. Например, использование значений 0,15,30,45 во втором поле означает, что триггер запускается каждые 15 секунд. Слечения (/) используются для постепенных графиков. Мы просто использовали запятые, чтобы представлять приращения каждые 15 минут, но мы также можем написать их как 0/15. Scribble (-) используется для указания диапазона. Например, 3-8 в часовой области означает «3, 4, 5, 6, 7 и 8 баллов». Значения домена не допускают перемотку, поэтому значения, такие как 50-10, не допускаются. Звездочка (*) указывает на то, что вы хотите включить все юридические значения в эту область. Например, использование звездочки в домене месяца означает, что этот триггер будет запускаться каждый месяц. Буква L указывает последнее значение, разрешенное в поле. Это поддерживается только ежедневными и еженедельными доменами. Персонаж W представляет собой будние дни (пн-пт) и может использоваться только в ежедневной области. Он используется, чтобы указать будний день, ближайший к указанному дню (без предварительного дня). # символы могут использоваться только в периферийном домене. Он используется, чтобы указать, какой день недели в указанном месяце. Например, если вы указываете значение еженедельного поля, которое составляет 6 #3, это означает третью пятницу определенного месяца (6 = пятница, № 3 означает третью неделю месяца). ->