基于Spring的HttpInvoker实现改写
服务器端调用: HttpInvoker.invoker 方法,设置InvokerProcess处理
客户端调用: ProxyFactory.proxy 方法,生成接口的代理对象,直接调用方法
客户端和服务器端的接口和实体类要一致,实体类必须是可以序列化的
比如:
定义Bean:
public class DemoBean implements java.io.Serializable{ /** * */ private static final long serialVersionUID = -5401380996187961689L; private String name; private String passWork; //省略get,set }
定义接口:
public interface DemoService { public DemoBean doTest(DemoBean bean); }
客户端调用:
import com.egova.rpc.proxy.ProxyFactory; public class ClientDemo { public static void main(String[] args) { String bindUrl = "服务器端请求地址/egova_invoker/invoker"; DemoService demoService = ProxyFactory.proxy(DemoService.class, bindUrl); DemoBean demo = new DemoBean(); DemoBean value = demoService.doTest(demo); System.out.println(value); } }
服务端处理:
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import com.egova.rpc.remote.HttpInvoker; import com.egova.rpc.remote.InvokerProcess; import com.egova.rpc.support.RemoteInvocation; @Controller @RequestMapping(value="/egova_invoker") public class ServerDemo{ @RequestMapping(value="invoker") public void invoker(HttpServletRequest request, HttpServletResponse response) { HttpInvoker.invoker(request, response, new InvokerProcess(){ public Object process(RemoteInvocation invocation){ //获取targetObject,即接口invocation.getInterfaceClazz()实现类 Object targetObject = new Object(); invocation.invoke(targetObject); } }); } }
我们试图将AspectJ实现到现有软件中,以便在进行服务调用后执行一些代码。 注: null 删除了批注,该批注可以正确地自动连接所有内容,但我们的@Aspect从未被调用。 通过声明在批注中添加了CGLIB支持,但无效。 我们尝试直接从Spring中遵循以下文档:@EnableAspectJAutoproxy Javadoc 这似乎是AspectJ处理自动连线依赖关系的代理机制的一个问题。 为什
本文向大家介绍基于spring实现websocket实时推送实例,包括了基于spring实现websocket实时推送实例的使用技巧和注意事项,需要的朋友参考一下 基于spring框架来写的,websocket实时推送例子,具体内容如下 第一步:自己搭建一个springmvc项目,很简单,网上百度都有;pom文件添加以下: 我的spring版本是4.2.4的,所以websocket也是4.2.4的
主要内容:1. 引入 tx 命名空间,2. 配置事务管理器,3. 配置事务通知,4. 配置切点切面,示例 Spring 声明式事务管理是通过 AOP 实现的,其本质是对方法前后进行拦截,然后在目标方法开始之前创建(或加入)一个事务,在执行完目标方法后,根据执行情况提交或者回滚事务。 声明式事务最大的优点就是对业务代码的侵入性低,可以将业务代码和事务管理代码很好地进行解耦。 Spring 实现声明式事务管理主要有 2 种方式: 基于 XML 方式的声明式事务管理。 通过 Annotation 注解
本文向大家介绍基于jQuery实现表格的查看修改删除,包括了基于jQuery实现表格的查看修改删除的使用技巧和注意事项,需要的朋友参考一下 效果图: HTML: CSS: JQ: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
主要内容:1. 开启注解事务,2. 使用 @Transactional 注解,示例 1在《 Spring基于XML实现事务管理》一节中,我们通过 <tx:advice> 元素极大的简化了 Spring 声明式事务所需的 XML 配置。但其实我们还可以通过另一种方式进行进一步的简化,那就是“使用注解实现事务管理”。 在 Spring 中,声明式事务除了可以使用 XML 实现外,还可以使用注解实现,以进一步降低代码之间的耦合度。下面我们就来介绍下,通过注解是如何实现声明式事务管理。 1
本文向大家介绍基于Spring实现文件上传功能,包括了基于Spring实现文件上传功能的使用技巧和注意事项,需要的朋友参考一下 本小节你将建立一个可以接受HTTP multi-part 文件的服务。 你将建立一个后台服务来接收文件以及前台页面来上传文件。 要利用servlet容器上传文件,你要注册一个MultipartConfigElement类,以往需要在web.xml 中配置<multipar