基于Java+SpringBoot+Vue前后端分离网上银行系统设计与实现(视频讲解)

news2024/11/19 2:45:56

博主介绍:✌全网粉丝3W+,全栈开发工程师,从事多年软件开发,在大厂呆过。持有软件中级、六级等证书。可提供微服务项目搭建与毕业项目实战,博主也曾写过优秀论文,查重率极低,在这方面有丰富的经验✌

博主作品:《Java项目案例》主要基于SpringBoot+MyBatis/MyBatis-plus+MySQL+Vue等前后端分离项目,可以在左边的分类专栏找到更多项目。《Uniapp项目案例》有几个有uniapp教程,企业实战开发。《微服务实战》专栏是本人的实战经验总结,《Spring家族及微服务系列》专注Spring、SpringMVC、SpringBoot、SpringCloud系列、Nacos等源码解读、热门面试题、架构设计等。除此之外还有不少文章等你来细细品味,更多惊喜等着你哦

🍅开源项目免费哦(有vue2与vue3版本):点击这里克隆或者下载   🍅

🍅文末获取联系🍅精彩专栏推荐订阅👇🏻👇🏻 不然下次找不到哟

Java项目案例《100套》

https://blog.csdn.net/qq_57756904/category_12173599.html

uniapp小程序《100套》

https://blog.csdn.net/qq_57756904/category_12199600.html

✨【微服务】Nacos为什么丢弃短连接(http)而选择拥抱长连接(gRPC)

目录

一、前言

1、 研究背景

2、 国内外研究现状

3、目标和意义

二、系统设计

1、系统运行环境

2、系统架构

三、非功能性与可行性分析

四、功能截图

1、登录

普通用户:

2、银行业务

2.1、存款

2.2、取款

2.3、转账

2.4、交易记录

2.5、余额查询

3、个人中心

管理员:

4、账户管理

5、交易记录

6、系统管理

6.1、角色管理

6.2、菜单管理

五、实现代码

1、用户控制器

2、用户服务接口

3、服务实现类

六、uniapp教程(需求分析、各模块及其节点文档、各模块案例)另外一个项目

七、获取源码


一、前言

1、 研究背景


随着社会的进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这就产生了以台式计算机为核心,以数据库管理系统为开发环境的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,特别是在银行账目管理之中的应用日益收到人们的关注。

人们生活质量的提高,与银行打交道以及成为人们生活中不可或缺的一部分,银行的用户持续增长。可是人们对银行的服务也提出更多,更高的要求。人们希望能更方便更省时地办储蓄业务。人们急切的希望有一种通用银行卡以便随时随地在哪家银行都可以存款,取款;现在计算机网络的高速发展使越来越多的人更喜欢在网上购物、在家存款取款;再这样的发展背景下,很明显需要建立一个、新的、高效的、方便的、互联的银行信息系统,以此提高银行信息系统的工作效率。满足更多用户的需求。

2、 国内外研究现状


在科学进步与技术创新中,金融业作为经济核心部门,其改革和发展一定要从长远目标考虑,以科技为创新动力,大力开发跨世纪的新型服务品种,走内涵式金融创新发展道路,确保我国金融业在国际大竞争中立于不败之地。在此环境中,以网络为依托的网上银行显示出强劲生命力。

1995年10月,美国三家银行联手推出全球第一家网上银行。即第一网络银行,由此揭开网上银行的发展序幕,国际各大商业银行相继推出网上银行。预计到2005年,其网上银行交易量将占其银行业务的75%。在国内,我国第一笔网上业务,于1998年3月6口,在中国银行网上交易成功。中国建设银行专门成立了网上银行部,并于1999年6月30日成功开通网上银行。招商银行建立的网上银行由企业银行、个人银行、网上证券、网上商城和网上支付五部分组成,结构更趋合理。中信实业银行于1999 年9月3日与IBM 公司软件部签约,建立全面电子商务系统,继而开发网上银行。网上银行为用户提供全方位、全天候、便捷、实时的现代化服务。这是一种全新的银行客户服务提交渠道,使得客户可以安全便捷地管理自己的资产和享受银行的服务。网上银行系统支持的银行业务包括:信息服务、账户查询、账号交易、扩展业务四大类型的银行服务。网上银行作为一种全新的服务提交渠道提供给客户,目前客户群主要集中在具有一定教育程度、能够使用Internet网络的人群,而伴随着Internet 网络广泛、迅速的普及和使用,正在形成一个庞大的潜在客户群体。

网上银行不受时间和空间的限制,可以随时随地处理用户的请求;网上银行的界面友好直观,用户可以通过简单的操作得到相应的服务,用户看到结果更加直观;网上银行提供的资讯详细而全面,用户可以得到比人工咨询更加准确的解答。提升银行形象,向客户提供更加优质的服务,增强客户对银行的信心;大幅度降低营运成本;专注于银行产品和服务的开发;获得高价值的客户;可跨行业从事电子商务。

目前国内电子商务模拟平台软件有三大类,一类是基于C/S结构的,受用户数量限制的,基于表格互传的网上贸易模拟,实质上相当于企业内部信息管理系统:另一类是基于交易平台的大型网上贸易模拟,它基于某个行业的垄断,召集该行业所有企事业单位,加盟该交易平台,获得交易席位,类似于证券交易所的红马夹,代表各自的企业在该交易平台上进行网上贸易。这种模拟系统基于特殊的交易平台,难以适应将来自由竞争的大环境;第三类是基于B/S结构的模拟系统,它采用先进的浏览器/服务器方式,不受访问量的限制,完全真实的模拟电子商务的主要模式。从理论知识的学习到具体模式的实现流程,从企业对消费者的网上营销到企业对企业的网上贸易,这类系统都能给学生清晰的概念和实践的机会。

3、目标和意义


现在的银行储蓄系统工作效率低,越来越不能满足广大人民群众的需要,人们希望能更方便更省时就可以办理储蓄业务;随着拥有多种银行卡的人群不断增长,人们急切希望有一种通用的银行卡以便随时随地在哪家银行都可以存款提款;现在计算机网络的高速发展使越来越多的人更喜欢在网购物、在家存款取款。在这样的背景下,很明显现在的银行储蓄系统已经不能满足人们日益增长的需求,急切需要建立一个新的、高效的、方便的、互联的计算机储蓄系统。

本系统开发的目的就是为了改善银行办理业务的复杂,低效的现状,提供一个基于互联网的安全系统,通过这个平台,人们可以更快的办理业务,银行人员可以减少工作量,提高工作效率。本系统所研究的内容是,实现一个简单的网上银行系统,来给储蓄用户和银行工作人员提供方便、安全、快捷的平台,储蓄用户通过开通网上银行可以查看余额、存款、取款、转账、修改密码等操作;银行工作人员使用此系统可以查看用户信息、查看交易信息、冻结账户等操作。简单的实现了金融服务的网络化。
 

二、系统设计

1、系统运行环境


开发系统:Windows10

架构模式:MVC/前后端分离

JDK版本:Java JDK1.8

开发工具:IDEA

数据库版本: mysql5.7

数据库可视化工具: SQL yog或Navicat for MySQL

服务器:SpringBoot自带 apache tomcat

主要技术:Java、SpringBoot、MyBatis-plus、SpringSecurity、Redis、MySQL、Uniapp、Vue、Html等
 

2、系统架构

三、非功能性与可行性分析

2.5非功能性需求分析

非功能性需求:用户对软件质量属性、运行环境、资源约束、外部接口等方面的要求或期望,包括:

2.5.1性能需求:

用户在软件响应速度、结果精度、运行时资源消耗量等方面的要求。

2.5.2可行性需求:

用户在软件失效的频率、严重程度、易恢复性,以及故障可预测性等方面的要求。

2.5.3易用性需求:

用户在界面的易用性、美观性,以及对面向用户的文档和培训资料等方面的要求。

2.5.4安全性需求:

用户在身份证、授权控制、私密性等方面的要求。

2.5.5运行环境约束:

用户对软件系统运行环境的要求。

2.5.6外部接口:

用户对待开发软件系统与其它软件系统或设备之间的接口要求

2.6可行性分析

可行性分析是从不同的角度,对可能影响系统的各方面因素进行分析,确认系统在实际生活上是可行的。本系统只是单纯地从经济、法律、技术、操作可行性四个方面来分析说明。

2.6.1技术可行性

技术上的可行性分析主要分析技术条件能否顺利完成开发工作,软、硬件能否满足需要。本系统采用Vue+Elementui开发出友好美观的人机界面,便于用户理解、操作。数据库管理系统采用MySQL,它能够处理大量数据,同时保持数据的完整性、安全性和持久性。后端技术使用SpringBoot、MyBatis,这些技术在许多公司已经被商用了,因此本系统的开发平台已成熟可行。硬件方面,在科技飞速发展的今天,硬件更新速度越来越快,容量越来越大,可靠性越来越高,价格越来越便宜,因此硬件平台也能够满足本系统所需。

2.6.2经济可行性

  项目放在阿里学生服务器或者本地虚拟机的linux环境,故可行。

2.6.3法律可行性

  可行,自己写的项目,目的明确,没有违法违规。

2.6.4操作可行性
操作较为简单,而且当下信息科技发达,界面的设计也着实考虑到用户的体验,系统也是为用户而生。故操作是可行的,不存在难度大的操作。
 

四、功能截图

1、登录

 

普通用户:

2、银行业务

2.1、存款

 

2.2、取款

 

2.3、转账

 

2.4、交易记录

 

2.5、余额查询

 

3、个人中心

管理员:

4、账户管理

 

5、交易记录

 

6、系统管理

6.1、角色管理

 

6.2、菜单管理

五、实现代码

1、用户控制器

@Slf4j
@RestController
@AllArgsConstructor
@RequestMapping("/api/users")
public class CeamSysUserController {
 
    private final ICeamSysUserService ceamSysUserService;
 
    @GetMapping
    public ResponseEntity page(PageableDTO pageableDTO) {
        IPage<CeaMSysUserVO> ceaMSysUserVOIPage = ceamSysUserService.pageCeaMSysUserVO(pageableDTO);
        return ResponseEntity.ok(ceaMSysUserVOIPage);
    }
    
    @PostMapping
    public ResponseEntity<Object> add(@RequestBody CeaMSysUserDTO data) {
        ceamSysUserService.add(data);
        return ResponseEntity.ok("成功");
    }
 
    @PutMapping
    public ResponseEntity<Object> edit(@RequestBody CeaMSysUserDTO data) {
        ceamSysUserService.edit(data);
        return ResponseEntity.ok("成功");
    }
 
    @DeleteMapping
    public ResponseEntity<Object> add(@RequestParam String id) {
        ceamSysUserService.remove(Long.parseLong(id));
        return ResponseEntity.ok("成功");
    }
}

2、用户服务接口

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author CeaM
 * @since 2023-01-28
 */
public interface ICeamSysUserService extends IService<CeamSysUser> {
 
    /**
     * 分页查询
     *
     * @param pageableDTO 分页入参
     * @return 分页数据
     */
    IPage<CeaMSysUserVO> pageCeaMSysUserVO(PageableDTO pageableDTO);
 
    /**
     * 根据账号加载用户信息
     *
     * @param userName 用户账号
     * @return CeaMSysUserDTO
     */
    CeaMSysUserDTO loadUserInfo(String userName);
 
    /**
     * 添加用户
     *
     * @param data 前端入参
     */
    void add(CeaMSysUserDTO data);
 
    /**
     * 修改用户
     *
     * @param data 前端入参
     */
    void edit(CeaMSysUserDTO data);
 
    /**
     * 根据用户ID删除用户
     *
     * @param id userId
     */
    void remove(Long id);
}

3、服务实现类

@Service
public class CeamSysUserServiceImpl
        extends ServiceImpl<CeamSysUserMapper, CeamSysUser> implements ICeamSysUserService {
 
    @Override
    public IPage<CeaMSysUserVO> pageCeaMSysUserVO(PageableDTO pageableDTO) {
        LambdaQueryWrapper<CeamSysUser> queryWrapper = Wrappers.<CeamSysUser>lambdaQuery()
                .eq(CeamSysUser::getDeleted, GlobalConstants.FALSE);
        Page<CeamSysUser> page = new Page<>(pageableDTO.getPage(), pageableDTO.getSize());
        page.setCurrent((long)pageableDTO.getPage()  + GlobalConstants.ONE);
        Page<CeamSysUser> ceamSysUserPage = page(page, queryWrapper);
        IPage<CeaMSysUserVO> ceaMSysUserVOIPage = PageVOUtil.copyToPageVO(ceamSysUserPage, CeaMSysUserVO.class);
        return ceaMSysUserVOIPage;
    }
 
    @Override
    public CeaMSysUserDTO loadUserInfo(String userName) {
        LambdaQueryWrapper<CeamSysUser> queryWrapper = Wrappers.<CeamSysUser>lambdaQuery()
                .eq(CeamSysUser::getUsername, userName);
        CeamSysUser ceamSysUser = baseMapper.selectOne(queryWrapper);
        if (ObjectUtils.isEmpty(ceamSysUser)) {
            throw new ServiceException("账号不存在");
        }
        if (ceamSysUser.getStatus() == GlobalConstants.ONE) {
            throw new ServiceException("账号已禁用");
        }
        CeaMSysUserDTO ceaMSysUserDTO = BeanCopyUtil.copyProperties(ceamSysUser, CeaMSysUserDTO.class);
        return ceaMSysUserDTO;
    }
 
    @Override
    public void add(CeaMSysUserDTO data) {
        CeamSysUser ceamSysUser = BeanCopyUtil.copyProperties(data, CeamSysUser.class);
        save(ceamSysUser);
    }
 
    @Override
    public void edit(CeaMSysUserDTO data) {
        CeamSysUser ceamSysUser = BeanCopyUtil.copyProperties(data, CeamSysUser.class);
        updateById(ceamSysUser);
    }
 
    @Override
    public void remove(Long id) {
        removeById(id);
    }
}

六、uniapp教程(需求分析、各模块及其节点文档、各模块案例)另外一个项目

另外一个项目基于Java+SpringBoot+Vue+Uniapp(有教程)前后端分离健身预约系统设计与实现

七、获取源码

 大家点赞、收藏、关注、评论啦 、关注下方公众号获取联系方式👇🏻👇🏻

🍅免费下载🍅商业使用需授权:点击这里下载

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/537454.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Element-ui中el-table展开行

类似这样的需求还记录不记录呢&#xff0c;其实我觉得是没必要的&#xff0c;但是想来还是记录一下吧&#xff0c;因为element-ui里面组件本身也很多&#xff0c;其中el-table的配置样式需求更是很多很多&#xff0c;所以这还是决定来记录一下&#xff0c;以后再有类似的需求也…

linux内核篇-输入输出系统(块设备,字符设备)

计算机系统的输入和输出系统都有哪些呢&#xff1f;有键盘、鼠标、显示器、网卡、硬盘、打印机、CD/DVD 等等&#xff0c;多种多样。但是对于操作系统来讲&#xff0c;却是一件复杂的事情&#xff0c;因为这么多设备&#xff0c;形状、用法、功能都不一样&#xff0c;怎么才能统…

SpringBoot中整合Swagger2接口文档

目录 1、maven依赖 2、swagger2 注解整体说明 2.1、请求类的描述 2.2、方法和方法参数的描述 2.3、方法的响应状态的描述 2.4、对象的描述 3、请求类的描述 3.1、Api&#xff1a;请求类的说明 3.2、示例&#xff1a; 4、方法和方法参数的描述 4.1、ApiOperation&#xff1a…

Linux 中的文件类型

目录 Linux文件类型说明 软链接 软链接特点 软链接工作过程 正常原文件a工作流程 文件a的软链接工作流程 硬链接 硬链接的特点 文件a的硬链接工作流程 软链接与硬链接的比较 测试软链接以及硬链接 1.进入根目录 2.创建test目录 3.进入test目录中&#xff0c;并创建a…

基于Redis的分布式锁,Redisson的简单使用和常用配置

介绍 Redisson是一个在Redis基础上实现的Java驻内存数据网格。Redisson提供了使用Redis的最简单最便捷的方法。Redisson的宗旨是促进使用者对Redis的关注分离&#xff0c;从而让使用者能够将精力更集中的放在处理业务逻辑上。 Redisson官方文档地址&#xff1a;https://githu…

蛋糕烘焙店小程序开发 让生活多点甜

蛋糕甜品因为较高的颜值、香甜的口感深受大众喜欢&#xff0c;当我们路过一家蛋糕烘焙店的时候&#xff0c;飘香的味道让我们流连忘返。但是互联网时代&#xff0c;各个行业都在转型&#xff0c;蛋糕烘焙店也需要由传统线下店面向线上线下结合的方式转变&#xff0c;以求摆脱区…

数据对象属性分类

数据集由数据对象组成&#xff0c;一个数据对象代表一个实体。数据对象又称样本、实例、数据点或对象。属性&#xff08;attribute&#xff09;是一个数据字段&#xff0c;表示数据对象的一个特征。属性向量&#xff08;或特征向量&#xff09;是用来描述一个给定对象的一组属性…

MySQL之单表访问方法

前言 本文章收录在MySQL性能优化原理实战专栏&#xff0c;点击此处查看更多优质内容。 本文摘录自 ▪ 小孩子4919《MySQL是怎样运行的&#xff1a;从根儿上理解MySQL》 对于我们这些MySQL的使用者来说&#xff0c;MySQL其实就是一个软件&#xff0c;平时用的最多的就是查询功…

快码住!!! 二叉树概念、重要性质、存储结构 技巧大总结!

文章目录 树树的概念树的表示树在实际中的应用 二叉树二叉树的概念特殊的二叉树 二叉树的性质二叉树性质应用的练习题 二叉树的存储结构顺序结构链式结构 树 树的概念 树是一种非线性的数据结构&#xff0c;它是由n(n>0)个有限结点组成的一个具有层次关系的集合。把它叫做…

语言模型及Word2vec与Bert简析

语言模型可以对一段文本的合理性概率进行估计&#xff0c;对信息检索&#xff0c;机器翻译&#xff0c;语音识别等任务有着重要的作用。就以前的学习笔记&#xff0c;本文简单总结了NLP语言模型word2vec和bert分享给大家&#xff0c;疏漏之处&#xff0c;望请指出&#xff0c; …

Go语言的简介和环境搭建

Go语言的简介和环境搭建 带你了解什么是Go语言 如何安装和配置Go的开发环境 静态强类型&#xff0c;编译型语言&#xff01;&#xff01;&#xff01; 1.简介 1.1介绍 Go 也称为 Golang&#xff0c;两个是一个东西。谷歌弄得。创造者都是大佬&#xff0c;所以说这个编程语言很…

PSP - AlphaFold2 Multimer 的 Heteromer (异聚体) MSA 逻辑

欢迎关注我的CSDN:https://spike.blog.csdn.net/ 本文地址:https://blog.csdn.net/caroline_wendy/article/details/130733737 同源多聚体 (Homomer) 是由相同的蛋白质亚基组成的,而异源多聚体 (Heteromer) 是由不同的蛋白质亚基组成的。同源多聚体的亚基之间通常有对称的相…

BFT 最前线 | OpenAI开放网络浏览和插件;“360AI商店”上线;Bing市场份额不升反降;亚马逊机器人配送中心投产

原创 | BFT机器人 AI视界 TECHNOLOGY NEWS 01 OpenAI将向所有ChatGPT Plus用户推出网络浏览和插件 OpenAI将向所有ChatGPT Plus用户推出网络浏览和插件近日&#xff0c;OpenAI发文称&#xff0c;将在本周&#xff08;5.15-5.21日&#xff09;内向所有ChatGPT Plus用户推出网络…

【Python scikit-learn】零基础也能轻松掌握的学习路线与参考资料

Python是一种广泛使用的编程语言&#xff0c;随着数据科学领域的不断发展&#xff0c;Python成为了数据科学的主要工具之一。scikit-learn是Python中一款非常流行的机器学习库&#xff0c;它为广大科学家和工程师提供了一种简单而有效的方法来解决机器学习问题。 本文将从以下…

客服软件强攻略——改善客户自助服务

客户自助服务相对容易采用并集成到您现有的客户服务产品中。也就是说&#xff0c;任何自助服务计划都应该经过充分研究&#xff0c;跟踪明确的目标和成功指标&#xff0c;以确保其成功。 有效的自助服务通常可以通过软件工具形成&#xff0c;比如SaleSmartly&#xff08;ss客服…

微服务保护(线程隔离、降级、熔断)

线程隔离 线程隔离有两种方式实现: 线程池隔离信号量隔离 线程池隔离 假设服务A依赖于服务B和服务C&#xff0c;那么服务A就会分别对服务B和服务C创建线程池&#xff0c;当有请求进来时不会使用服务A本身的线程&#xff0c;而是到对应的线程池中取一个线程来调用feign的客户…

ViLT论文精读笔记

ViLT论文精读笔记 0.摘要1.引言2.背景知识&#xff08;小综述&#xff09;2.1对VLP模型分类2.2模态的融合2.3融合前特征的抽取 3.模型方法3.1预训练目标函数&#xff1a;3.1.1 Image Text Matching&#xff1a;3.1.2 Masked Language Modeling3.1.3 Masked Image Modeling 3.2W…

本周刷题记录

截至周三刷了六道题 题目1&#xff1a; 这是个交互题&#xff0c;目前遇到的交互题都是用二分解决的。 本题使用二分精准定位拥有重量为2的石头的堆。 为避免时间超限&#xff0c;应该再输入数据时计算好前缀和。 二分过程中&#xff0c;如果哪边的重量总和不等于石头数&…

关键词采集软件-关键词自动生成器

网站关键词对于SEO优化至关重要&#xff0c;在搜索引擎排名和流量中扮演着重要的角色。而147seo关键词生成软件可以帮助用户更好地发现与他们的业务和目标相关的关键词和话题。其中的147SEO关键词挖掘软件是其核心功能之一&#xff0c;能够自动批量实时挖掘关键词和短语&#x…

day33_css

今日内容 零、 复习昨日 一、CSS 零、 复习昨日 见代码 一 、引言 1.1CSS概念 ​ 层叠样式表(英文全称&#xff1a;Cascading Style Sheets)是一种用来表现HTML&#xff08;标准通用标记语言的一个应用&#xff09;或XML&#xff08;标准通用标记语言的一个子集&#xff09;等文…