项目描述
临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。这里根据疫情当下,你想解决的问题,今天给大家介绍一篇基于Springboot的闲置图书共享系统设计与实现。
功能需求
本系统从需求分析和用户的操作角度,为保证图书的共享。下面对整个系统功能前端结构的设计和梳理,前端模块结构图如图1所示:

基于springboot的闲置图书共享系统业务处理后端管理员管理模块结构图如图2所示:

系统功能模块框架图

部分效果图

 


 
 
部分代码
    @PostMapping("/saveBookInfo")
    public ApiResult<BookInfo> saveBookInfo(
        @SessionAttribute(name = SystemConstant.ACTIVE_USER) ActiveUser activeUser,
        BookInfo bookInfo,
        @RequestBody MultipartFile file) {
        if (file != null) {
            try {
                String extension = FilenameUtils.getExtension(file.getOriginalFilename());
                String nextId = snowflake.nextId().toString();
                // 上传并返回新文件名称
                String fileName = nextId + "." + extension;
                file.transferTo(new File(baseDir, fileName));
                bookInfo.setCoverImage(fileName);
            } catch (Exception e) {
                return apiResultComponent.error(ApiResultCodeEnum.UPLOAD_ERROR);
            }
        }
        bookInfo.setOwnerUserId(activeUser.getUserId());
        Boolean saveBookInfo = bookInfoService.saveBookInfo(bookInfo);
        if (saveBookInfo) {
            BookInfo bookInfoById = bookInfoService.getBookInfoById(bookInfo.getId());
            return apiResultComponent.success(bookInfoById);
        }
        return apiResultComponent.error(ApiResultCodeEnum.ADD_ERROR);
    }
    @PostMapping("/updateBookInfo")
    public ApiResult<BookInfo> updateBookInfo(BookInfo bookInfo, @RequestBody MultipartFile file) {
        if (file != null) {
            try {
                String extension = FilenameUtils.getExtension(file.getOriginalFilename());
                String nextId = snowflake.nextId().toString();
                // 上传并返回新文件名称
                String fileName = nextId + "." + extension;
                file.transferTo(new File(baseDir, fileName));
                String coverImage = bookInfo.getCoverImage();
                FileUtils.deleteFile(new File(baseDir, coverImage).getAbsolutePath());
                bookInfo.setCoverImage(fileName);
            } catch (Exception e) {
                return apiResultComponent.error(ApiResultCodeEnum.UPLOAD_ERROR);
            }
        }
        Boolean updateBookInfo = bookInfoService.updateBookInfo(bookInfo);
        if (updateBookInfo) {
            BookInfo bookInfoById = bookInfoService.getBookInfoById(bookInfo.getId());
            return apiResultComponent.success(bookInfoById);
        }
        return apiResultComponent.error(ApiResultCodeEnum.UPDATE_ERROR);
    }
    @PostMapping("/borrowBook")
    public ApiResult<BookInfo> borrowBook(@SessionAttribute(SystemConstant.ACTIVE_USER) ActiveUser activeUser,
        @RequestBody BookInfo bookInfo) {
        Integer id = bookInfo.getId();
        BookInfo bookInfoById = bookInfoService.getBookInfoById(id);
        if (bookInfoById == null) {
            return apiResultComponent.error(ApiResultCodeEnum.BOOK_INFO_NULL);
        }
        bookInfo.setBorrowed(true);
        bookInfo.setBorrowUserId(activeUser.getUserId());
        bookInfo.setBorrowedTime(new Date());
        bookInfoService.updateBookInfo(bookInfo);
        bookInfoById = bookInfoService.getBookInfoById(id);
        return apiResultComponent.success(bookInfoById);
    }
 
系统部署
系统开发后,在生产环境配置项目运行环境,具体步骤如下:
 安装linux或者windows10操作系统;
 安装JDK1.8并配置环境变量;
 安装MySQL5.7版本数据库,创建数据库并执行脚本创建表;
本项目用到的技术和框架
1.开发语言:Java
 2.开发模式:B/S
 3.数据库:MySQL5.7
 4.框架:Springboot+Mybaits
 5.前端语言vue
本项目中的关键点
此系统的开发采用java语言开发,基于B/S结构,这些开发环境使系统更加完善。使用到的工具和技术都是开源免费的。
环境工具
开发工具 IDEA
 硬件:笔记本电脑;
 软件:Tomcat8.0 Web服务器、Navicat数据库客户端、MySQL;
 操作系统:Windows 10;
 其它软件:截图工具、常用浏览器;
 以上是本系统的部分功能展示,如果你的选题正好相符,那么可以做毕业设计或课程设计使用。



















