返回顶部
首页 > 资讯 > 精选 >MVC+proxy的原理及使用方法
  • 452
分享到

MVC+proxy的原理及使用方法

2023-06-20 15:06:05 452人浏览 八月长安
摘要

这篇文章主要讲解了“mvc+proxy的原理及使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MVC+proxy的原理及使用方法”吧!目录创建业务层UserService接口定义需要完

这篇文章主要讲解了“mvc+proxy的原理及使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MVC+proxy的原理及使用方法”吧!

目录
  • 创建业务层UserService接口定义需要完成的功能

  • 创建持久层UserDao接口定义具体的CURD

  • 完成UserService接口和UserDao的实现类

  • 创建InvocationHandler接口的实现类

  • 创建表示层Servlet去完成调用

  • 总结

1、创建业务层UserService接口定义需要完成的功能

public interface UserService {    boolean save(User user);}

2、创建持久层UserDao接口定义具体的CURD

public interface UserService {    boolean save(User user);}

3、完成UserService接口和UserDao的实现类

public class UserServiceImpl implements UserService {    private UserDao dao=new UserDaoImpl();    @Override    public boolean save(User user) {        boolean success=false;        success=dao.insert(user);        return success;    }}

这里省略具体的JDBC代码

public class UserDaoImpl implements UserDao {    @Override    public boolean insert(User user) {        System.out.println("insert into t_user (username,passWord)values('"+user.getUsername()+"','"+user.getPassword()+"')");        return true;    }}

4、创建InvocationHandler接口的实现类

为什么需要这个接口?

因为在开发中,业务层可能含有涉及到多步数据库操作,所以这一步需要开启事务,但是开发中这样的情况太多了,所以我们需要面向横切面编程,创建代理代理,在调用业务层方法时,我们利用jdk动态代理的增强功能提供事务。这样,事务代码只用写一次,但是每次业务层方法调用时,我们都可以使用代理对象去调用业务层方法来开启事务。实现了代码复用。

public class UserHandler implements InvocationHandler {    //动态创建目标对象    Object target=null;    public UserHandler(Object target){        this.target=target;    }    @Override    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {        //返回值        Object result=null;        //增强功能        System.out.println("begin Transaction.....");        result=result=method.invoke(target,args);        System.out.println("commit Transaction.....");        System.out.println("rollback Transaction.....");        System.out.println("end Transaction.....");        //返回值        return result;    }}

这里我就用输出语句代表事务语句。

5、创建表示层Servlet去完成调用

public class UserSaveServlet {    public static void main(String[] args) throws Exception {        //需要调用的目标类        Class c= UserServiceImpl.class;        Object obj = c.newInstance();        //获取该类的类加载器        ClassLoader loader = obj.getClass().getClassLoader();        //目标对象实现的接口        Class<?>[] interfaces=obj.getClass().getInterfaces();        //获取InvocationHandler对象        InvocationHandler handler=new UserHandler(obj);        //创建代理对象        //将返回值转为接口类型        UserService service=(UserService)Proxy.newProxyInstance(loader,interfaces,handler);        boolean success=service.save(new User("张三","123456"));        System.out.println(success?"保存成功":"保存失败");    }}

MVC+proxy的原理及使用方法

感谢各位的阅读,以上就是“MVC+proxy的原理及使用方法”的内容了,经过本文的学习后,相信大家对MVC+proxy的原理及使用方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: MVC+proxy的原理及使用方法

本文链接: https://lsjlt.com/news/297723.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • MVC+proxy的原理及使用方法
    这篇文章主要讲解了“MVC+proxy的原理及使用方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MVC+proxy的原理及使用方法”吧!目录创建业务层UserService接口定义需要完...
    99+
    2023-06-20
  • Java 代理(Proxy)的原理及应用
    目录一、代理的概念二、java中的代理2.1、"java.lang.reflect.Proxy"类介绍2.2、编写生成代理对象的类三、动态代理应用3.1、在字符过滤器中使用动态代理解...
    99+
    2024-04-02
  • Java 动态代理中Proxy的使用方法
    本篇文章给大家分享的是有关Java 动态代理中Proxy的使用方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。动态代理可以提供对另一个对象的访问,同时隐藏实际对象的具体事实...
    99+
    2023-06-17
  • GTK treeview原理及使用方法解析
    GtkTreeView 构件是一个高级的构件,利用他你就可以制作出漂亮的普通列表或者是树状的列表。这个构件里可以包含一或者多行。他的构架呢?正是采用了大名鼎鼎的MVC (Model View Controller) 设计...
    99+
    2022-06-04
    GTK treeview原理
  • ADO.NET连接池的原理及其使用方法
    本篇内容主要讲解“ADO.NET连接池的原理及其使用方法”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“ADO.NET连接池的原理及其使用方法”吧!不要关闭数据库中所有的连接,至少保证ADO.NE...
    99+
    2023-06-17
  • PHP中Memcache缓存的原理及使用方法
    PHP中Memcache缓存的原理及使用方法在Web应用程序中,缓存是提高性能和响应速度的关键。Memcache是一种常见的缓存技术之一,被广泛使用于Web应用程序中。本篇文章将介绍Memcache缓存的原理和使用方法,以帮助开发人员更有效...
    99+
    2023-05-16
    缓存 PHP Memcache
  • PHP opcache的原理及使用方法是什么
    这篇文章主要介绍了PHP opcache的原理及使用方法是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇PHP opcache的原理及使用方法是什么文章都会有所收获,下面我们一起来看看吧。PHP项目中,尤其...
    99+
    2023-07-05
  • MYSQL-PROXY的安装与使用方法
    本篇内容介绍了“MYSQL-PROXY的安装与使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!MyS...
    99+
    2024-04-02
  • ASP.NET MVC中的路由原理与用法
    目录一、概述二、路由原理1、注册路由2、路由匹配2.1、匹配方式一2.2、匹配方式二2.3、匹配方式三3、URL参数默认值3.1、参数默认值一3.2、参数默认值二3.4、参数默认值三...
    99+
    2024-04-02
  • redux工作原理讲解及使用方法
    目录1. redux 是什么?2.redux的原理3. 如何使用 redux?(1).安装redux,创建redux文件夹,建立store.js(2).建立reducers.js(3...
    99+
    2024-04-02
  • Gateway网关工作原理及使用方法
    目录1. 什么是 API 网关(API Gateway)分布式服务架构、微服务架构与 API 网关API 网关的定义API 网关的职能API 网关的分类与功能2. Gateway是什...
    99+
    2024-04-02
  • Proxy的不可变数据优点及使用方法是什么
    这篇文章主要介绍“Proxy的不可变数据优点及使用方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Proxy的不可变数据优点及使用方法是什么”文章能帮助大家解决问题。可变数据对象被赋值后,更...
    99+
    2023-07-05
  • python列表推导式的原理及使用方法
    偶尔会在python中看见这样一行代码: data = [x**2 for x in range(0, 5)] # 此时data = [0, 1, 4, 9, 16] 如果不知道背后...
    99+
    2024-04-02
  • Asp.net MVC 中Ajax的使用方法
    本篇内容介绍了“Asp.net MVC 中Ajax的使用方法”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!...
    99+
    2024-04-02
  • cdn加速原理及使用方法是什么
    CDN加速原理是将网站的静态资源(如图片、视频、CSS、JS等)缓存到全球分布的CDN节点上,当用户访问网站时,CDN节点会根据用户...
    99+
    2023-05-15
    cdn加速原理 cdn
  • 详细分析mysql视图的原理及使用方法
    前言: 在MySQL中,视图可能是我们最常用的数据库对象之一了。那么你知道视图和表的区别吗?你知道创建及使用视图要注意哪些点吗?可能很多人对视图只是一知半解,想详细了解视图的同学看过来哟,本篇文章会详细介绍视图的概...
    99+
    2022-05-25
    MySQL 视图 MySQL 视图使用 MySQL 视图原理
  • Android检测Cursor泄漏的原理以及使用方法
    简介: 本文介绍如何在 Android 检测 Cursor 泄漏的原理以及使用方法,还指出几种常见的出错示例。有一些泄漏在代码中难以察觉,但程序长时间运行后必然会出现异常。同时...
    99+
    2022-06-06
    方法 cursor Android
  • History是基本原理及使用方法是怎样的
    这期内容当中小编将会给大家带来有关History是基本原理及使用方法是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。当我们频繁使用 Linux 命令行时,有效地使用历史记录,可以大大提高工作效率。在...
    99+
    2023-06-15
  • 负载均衡的原理及使用方法是什么
    负载均衡是一种用于分配网络请求负载的技术,它通过将网络请求分配给多个后端服务器来提高系统的性能、可靠性和可扩展性。负载均衡的原理是基...
    99+
    2023-09-01
    负载均衡
  • 解析vue的provide和inject使用方法及其原理
    首先来谈谈我们为什么要使用provide/inject呢?对于爷爷和孙子组件之间,甚至太爷爷组件与孙子组件通信我们用vuex不就ok了。 那事实的确如此,但是,请听我说但是,有时候你...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作