中文字幕理论片,69视频免费在线观看,亚洲成人app,国产1级毛片,刘涛最大尺度戏视频,欧美亚洲美女视频,2021韩国美女仙女屋vip视频

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
Spring HTTP Invoker例子

Spring HTTP Invoker例子

標(biāo)簽: #Java編程 |  發(fā)布時(shí)間:2011-06-19

Spring HTTP Invoker例子,Spring HTTP Invoker是spring框架中的一個(gè)遠(yuǎn)程調(diào)用模型,執(zhí)行基于HTTP的遠(yuǎn)程調(diào)用,也就是說,可以通過防火墻,并使用java的序列化機(jī)制在網(wǎng)絡(luò)間傳遞對象??蛻舳丝梢院茌p松的像調(diào)用本地對象一樣調(diào)用遠(yuǎn)程服務(wù)器上的對象,要注意的一點(diǎn)是,服務(wù)端、客戶端都是使用Spring框架。下面通過一個(gè)例子,來講解Spring HTTP Invoker的使用,這里使用的是Spring3.0框架。

整體流程如下:
1.服務(wù)器端:通過Spring HTTP Invoker,將服務(wù)接口的某個(gè)實(shí)現(xiàn)類提供為遠(yuǎn)程服務(wù)。
2.客戶端:通過Spring HTTP Invoker代理,向服務(wù)端發(fā)送請求,遠(yuǎn)程調(diào)用服務(wù)端接口。

注意事項(xiàng):由于是通過網(wǎng)絡(luò)傳輸,所以服務(wù)端、客戶端的POJO類,都要實(shí)現(xiàn)Serializable接口,進(jìn)行序列化、反序列化。

先看看服務(wù)端的配置:
1.先提供一個(gè)服務(wù)接口
01.package spring.invoker.service;
02. 
03.import spring.invoker.domain.UserInfo;
04. 
05./**
06.* spring http invoker例子
07.* @author steven
08.*
09.*/
10.public interface UserService {
11./**
12.* 根據(jù)用戶名,獲取用戶信息
13.* @param userName  用戶名
14.* @return   返回用戶信息
15.*/
16.public UserInfo getUserInfobyName(String userName);
17. 
18. 
19. 
20./**
21.* 根據(jù)用戶名,獲取用戶郵箱
22.* @param userName  用戶名
23.* @return   返回用戶郵箱
24.*/
25.public String getUserEmailbyName(String userName);
26.}

2.再實(shí)現(xiàn)這個(gè)服務(wù)接口,像平時(shí)寫service一樣,這里只是一個(gè)簡單的例子,可以在這里調(diào)用自己的DAO,查詢數(shù)據(jù)庫。
01.package spring.invoker.service.impl;
02. 
03.import spring.invoker.domain.UserInfo;
04.import spring.invoker.service.UserService;
05. 
06./**
07.* spring http invoker例子
08.* @author steven
09.*
10.*/
11.public class UserServiceImpl implements UserService{
12. 
13. 
14./**
15.* 根據(jù)用戶名,獲取用戶信息
16.* @param userName  用戶名
17.* @return   返回用戶信息
18.*/
19.public UserInfo getUserInfobyName(String userName){
20.UserInfo userInfo = new UserInfo();
21.userInfo.setUserName(userName);
22.userInfo.setEmail("xxx@site.com");
23. 
24.return userInfo;
25.}
26. 
27. 
28. 
29./**
30.* 根據(jù)用戶名,獲取用戶郵箱
31.* @param userName  用戶名
32.* @return   返回用戶郵箱
33.*/
34.public String getUserEmailbyName(String userName){
35.return userName + "的郵箱地址為:xxx.site.com";
36.}
37.}

3.接下來,就是POJO類了,這個(gè)類一定要實(shí)現(xiàn)Serializable接口,并指定一個(gè)serialVersionUID。
01.package spring.invoker.domain;
02. 
03.import java.io.Serializable;
04. 
05./**
06.* 用戶基本信息
07.* @author steven
08.*
09.*/
10.public class UserInfo implements Serializable {
11.private static final long serialVersionUID = 1L;
12.private String userName;
13.private String email;
14. 
15.public String getUserName() {
16.return userName;
17.}
18.public void setUserName(String userName) {
19.this.userName = userName;
20.}
21.public String getEmail() {
22.return email;
23.}
24.public void setEmail(String email) {
25.this.email = email;
26.}
27. 
28.}


4.將接口聲明為HTTP Invoker服務(wù)
01.<?xml version="1.0" encoding="UTF-8"?>
02.<beans xmlns="http://www.springframework.org/schema/beans"
03.xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
04.xmlns:p="http://www.springframework.org/schema/p"
05.xmlns:context="http://www.springframework.org/schema/context"
06.xsi:schemaLocation="
07.http://www.springframework.org/schema/beans
08.http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
09.http://www.springframework.org/schema/context
10.http://www.springframework.org/schema/context/spring-context-3.0.xsd">
11. 
12.<!-- 交給Spring管理,bean的名稱是:userService -->
13.<bean id="userService" class="spring.invoker.service.impl.UserServiceImpl"/>
14. 
15.<!-- 這個(gè)配置,就是把userService接口,提供給遠(yuǎn)程調(diào)用 -->
16.<bean id="httpService"
17.class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter">
18.<property name="service">
19.<ref bean="userService" />
20.</property>
21.<property name="serviceInterface"
22.value="spring.invoker.service.UserService">
23.</property>
24.</bean>
25. 
26.<!-- 遠(yuǎn)程服務(wù)的URL -->
27.<bean
28.class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping">
29.<property name="mappings">
30.<props>
31.<prop key="/test">httpService</prop>
32.</props>
33.</property>
34.</bean>
35. 
36.</beans>

5.WEB-INF/web.xml:配置spring監(jiān)聽及DispatcherServlet
01.<?xml version="1.0" encoding="UTF-8"?>
02.<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
03.xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
04.xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
05.id="WebApp_ID" version="2.5">
06.<display-name>Spring3.0 Test Demo</display-name>
07.<context-param>
08.<param-name>contextConfigLocation</param-name>
09.<param-value>
10./WEB-INF/dispatcher-service.xml
11./WEB-INF/dispatcher-servlet.xml
12.</param-value>
13.</context-param>
14.<listener>
15.<listener-class>
16.org.springframework.web.context.ContextLoaderListener
17.</listener-class>
18.</listener>
19.<servlet>
20.<servlet-name>dispatcher</servlet-name>
21.<servlet-class>
22.org.springframework.web.servlet.DispatcherServlet
23.</servlet-class>
24.<load-on-startup>1</load-on-startup>
25.</servlet>   
26.<servlet-mapping>
27.<servlet-name>dispatcher</servlet-name>
28.<url-pattern>/</url-pattern>
29.</servlet-mapping>
30.</web-app>
通過以上5步,就配置好了Spring HTTP Invoker服務(wù),地址:http://${serviceName}:${port}/${contextPath}/test



下面就是客戶端怎么調(diào)用遠(yuǎn)程Spring HTTP Invoker服務(wù)。
1.創(chuàng)建服務(wù)接口及網(wǎng)絡(luò)間傳輸?shù)腜OJO類,為了方便,可以將服務(wù)器端創(chuàng)建好的的UserService.java和UserInfo.java拷貝到客戶端,或打個(gè)jar包放到lib下。


2.配置HTTP Invoker的代理,用來調(diào)用遠(yuǎn)程服務(wù),spring配置文件如下:
01.<bean id="httpService"
02.class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean">
03.<property name="serviceUrl">
04.<value>
05.http://${serviceName}:${port}/${contextPath}/test
06.</value>
07.</property>
08.<property name="serviceInterface" value="spring.invoker.service.UserService">
09.</property>
10.</bean>

3. 下面是使用Spring注解的方式,當(dāng)然 ,你也可以使用配置的方式,把下面的類交給Spring管理,再把httpService通過set的方式,注入進(jìn)來。
01.package spring.invoker;
02. 
03.import javax.annotation.Resource;
04. 
05.import org.springframework.stereotype.Controller;
06.import org.springframework.web.bind.annotation.RequestMapping;
07. 
08.import spring.invoker.service.UserService;
09. 
10.@Controller
11.public class InvokerAction {
12.@Resource private UserService httpService;
13. 
14.@RequestMapping(value="/httpTest")
15.public void testInvoker(){
16.System.out.println(httpService.getUserEmailbyName("xxx"));
17.}
18. 
19.}
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Spring HTTP Invoker使用介紹
SSM框架入門和搭建 十部曲
Spring 事務(wù)管理高級應(yīng)用難點(diǎn)剖析: 第 1 部分
用Spring Boot & Cloud,Angular2快速搭建微服務(wù)web應(yīng)用
Spring 注解學(xué)習(xí)手札
基于Spring Mybatis jsp servlet的用戶登錄注冊功能(數(shù)據(jù)庫查找和插入用戶),jsp寫的前端(css javascript),使用IDEA
更多類似文章 >>
生活服務(wù)
熱點(diǎn)新聞
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服