SpringHttpInvoker解析1-使用示例
2016-11-22 11:21
323 查看
HTTP invoker是一个新的远程调用模型,作为Spring框架的一部分,来执行基于HTTP的远程调用(让防火墙可以接受),并使用Java的序列化机制。
服务端
定义服务接口UserService
import java.util.List; import com.gosun.jws.daomain.Users; public interface UserService { public List<Users> geAlltUsers(); public Users getUser(String id); public void save(Users user); public void saves(List<Users> users); }
服务接口实现类
import java.util.List; import com.gosun.jws.daomain.Users; import com.gosun.jws.daomain.UsersFactory; public class UserServiceImpl implements UserService { @Override public List<Users> geAlltUsers() { return UsersFactory.getUsers(); } @Override public Users getUser(String id) { System.out.println(id); return UsersFactory.getUser(); } @Override public void save(Users user) { System.out.println(user.toJson()); } @Override public void saves(List<Users> users) { for (Users u : users) { System.out.println(u.toJson()); } } }
配置Spring的HttpInvokerServiceExporter和SimpleUrlHandlerMapping
<!-- 在Spring的httpInvoker服务 --> <bean id="httpInvokerUserService" class="org.springframework.remoting.httpinvoker.HttpInvokerServiceExporter"> <!--需要发布的实现类 --> <property name="service" ref="userServiceHttpInvoker" /> <property name="serviceInterface" value="com.gosun.jws.httpinvoker.UserService" /> </bean> <!-- 将特定的请求映射到具体的hessianservice --> <bean id="urlMapping1" class="org.springframework.web.servlet.handler.SimpleUrlHandlerMapping"> <property name="mappings"> <props> <prop key="/httpInvokerUserService.service">httpInvokerUserService</prop> </props> </property> </bean> <bean id="userServiceHttpInvoker" class="com.gosun.jws.httpinvoker.UserServiceImpl" />
配置DispatcherServlet控制器
<servlet> <servlet-name>dispatcherServlet</servlet-name> <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> <init-param> <param-name>contextConfigLocation</param-name> <param-value>classpath:applicationContext-httpinvoker.xml</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>dispatcherServlet</servlet-name> <url-pattern>*.service</url-pattern> </servlet-mapping>
客户端
配置Spring的HttpInvokerProxyFactoryBean
<bean id="httpInvokerUserService" class="org.springframework.remoting.httpinvoker.HttpInvokerProxyFactoryBean"> <property name="serviceUrl" value="http://localhost:8080/jws/httpInvokerUserService.service"/> <property name="serviceInterface" value="com.gosun.jws.httpinvoker.UserService" /> </bean>
测试代码
import java.util.List; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.gosun.jws.daomain.Users; public class ClientDemo { public static void main(String[] args) { ApplicationContext ac = new ClassPathXmlApplicationContext("client-application/applicationContext-httpInvoker.xml"); UserService us = (UserService) ac.getBean("httpInvokerUserService"); Users user = us.getUser("a001"); System.out.println(user.toJson()); System.out.println("----------------------------------------"); List<Users> users = us.geAlltUsers(); for (Users u : users) { System.out.println(u.toJson()); } System.out.println("----------------------------------------"); us.save(user); System.out.println("----------------------------------------"); us.saves(users); }
相关文章推荐
- Spring HTTP Invoker使用介绍
- 使用Spring HTTP invoker进行远程调用
- SpringJMS解析1-使用示例
- Spring Http Invoker使用简介
- RMI在Spring中的使用之HttpInvokerServiceExporter
- Spring HTTP Invoker使用
- SpringMyBatis解析1-使用示例
- SpringRMI解析1-使用示例
- Spring HTTP Invoker使用介绍
- Spring HTTP Invoker使用介绍
- Spring发布和使用Http Invoker
- Spring Http Invoker使用简介
- [转载]spring的httpInvoker远程调用 示例
- Spring HTTP Invoker使用
- spring(基础十) Spring HTTP Invoker使用介绍
- 使用http原生包抓取RestAPI接口内容并解析为实体的示例
- PHP 使用header函数设置HTTP头的示例解析 表头
- Spring Http Invoker使用简介
- SpringHttpInvoker解析3-客户端实现
- SpringJDBC解析1-使用示例