Springboot实例讲解实现专业材料认证管理系统流程
目录
- 一,项目简介
- 二,环境介绍
- 三,系统展示
- 四,核心代码展示
- 五,项目总结
一,项目简介 这是一个基于java的毕业设计项目,毕设课题为springboot框架的知识产权服务平台系统, 是一个采用b/s结构的javaweb项目, 开发工具eclipsei/eclipse, 项目框架jsp+springboot+mybatis, 知识产权服务平台系统采用mysql进行数据存储, 并基于mybatis进行了orm实体关系映射, 该知识产权服务平台系统系统通过模块化实现,支持多角色权限管理系统, 提升了管理效率, 知识产权服务平台系统参考文献可见附件中的毕业论文与毕设源码
该知识产权服务平台系统项目采用mvc设计模式, 其中知识产权服务平台系统的视图与知识产权服务平台系统业务逻辑进行了分层设计, 特别方便后续知识产权服务平台系统系统的开发
设计这种mvc的架构的好处是完全的可以将业务进行分层, 进行高内聚低耦合, 分为service层, dao层, controller层, 架构清晰
本项目主要基于Springboot 和ruoyi来开发一套专业认证材料管理系统,对各专业相关的文档材料进行管理,主要包含的功能模块有:
系统管理:用户管理、角色管理、菜单管理、操作日志
业务模块:专业管理、认证材料管理、相关网站管理
二,环境介绍 【Springboot实例讲解实现专业材料认证管理系统流程】语言环境:Java: jdk1.8
数据库:Mysql: mysql5.7
应用服务器:Tomcat: tomcat8.5.31
开发工具:IDEA或eclipse
开发技术:Springboot+ruoyi+bootstrap
三,系统展示 用户登陆:
文章图片
用户注册:
文章图片
用户管理
文章图片
角色管理
文章图片
菜单管理
文章图片
操作管理
文章图片
专业管理
文章图片
认证材料管理
文章图片
相关网站
文章图片
个人中心
文章图片
修改密码
文章图片
四,核心代码展示
package com.code.project.common; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.multipart.MultipartFile; import com.code.common.constant.Constants; import com.code.common.utils.StringUtils; import com.code.common.utils.file.FileUploadUtils; import com.code.common.utils.file.FileUtils; import com.code.common.utils.security.ShiroUtils; import com.code.framework.config.RuoYiConfig; import com.code.framework.config.ServerConfig; import com.code.framework.web.domain.AjaxResult; /** * 通用请求处理 * * @author ruoyi */@Controllerpublic class CommonController{private static final Logger log = LoggerFactory.getLogger(CommonController.class); @Autowiredprivate ServerConfig serverConfig; /*** 通用下载请求** @param fileName 文件名称* @param delete 是否删除*/@GetMapping("common/download")public void fileDownload(String fileName, Boolean delete, HttpServletResponse response, HttpServletRequest request){try{if (!FileUtils.isValidFilename(fileName)){throw new Exception(StringUtils.format("文件名称({})非法,不允许下载。 ", fileName)); }String realFileName = System.currentTimeMillis() + fileName.substring(fileName.indexOf("_") + 1); String filePath = System.getProperty("user.dir").replace('\\','/')+RuoYiConfig.getDownloadPath() + fileName; System.out.println(filePath); response.setCharacterEncoding("utf-8"); response.setContentType("multipart/form-data"); response.setHeader("Content-Disposition","attachment; fileName=" + FileUtils.setFileDownloadHeader(request, realFileName)); FileUtils.writeBytes(filePath, response.getOutputStream()); if (delete){FileUtils.deleteFile(filePath); }}catch (Exception e){log.error("下载文件失败", e); }}/*** 通用上传请求*/@PostMapping("/common/upload")@ResponseBodypublic AjaxResult uploadFile(MultipartFile file) throws Exception{try{// 上传文件路径String filePath = System.getProperty("user.dir").replace('\\','/')+RuoYiConfig.getUploadPath(); System.out.println(filePath); // 上传并返回新文件名称String fileName = FileUploadUtils.upload(filePath, file); String url = serverConfig.getUrl() + fileName; AjaxResult ajax = AjaxResult.success(); ajax.put("fileName", fileName); ajax.put("url", url); return ajax; }catch (Exception e){return AjaxResult.error(e.getMessage()); }}/*** 本地资源通用下载*/@GetMapping("/common/download/resource")public void resourceDownload(String resource, HttpServletRequest request, HttpServletResponse response)throws Exception{// 本地资源路径String localPath = System.getProperty("user.dir").replace('\\','/')+RuoYiConfig.getProfile(); // 数据库资源地址String downloadPath = localPath + StringUtils.substringAfter(resource, Constants.RESOURCE_PREFIX); // 下载名称String downloadName = StringUtils.substringAfterLast(downloadPath, "/"); response.setCharacterEncoding("utf-8"); response.setContentType("multipart/form-data"); response.setHeader("Content-Disposition","attachment; fileName=" + FileUtils.setFileDownloadHeader(request, downloadName)); FileUtils.writeBytes(downloadPath, response.getOutputStream()); }}
package com.code.project.monitor.online.controller; import java.util.List; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; import com.code.common.utils.security.ShiroUtils; import com.code.framework.aspectj.lang.annotation.Log; import com.code.framework.aspectj.lang.enums.BusinessType; import com.code.framework.shiro.session.OnlineSessionDAO; import com.code.framework.web.controller.BaseController; import com.code.framework.web.domain.AjaxResult; import com.code.framework.web.page.TableDataInfo; import com.code.project.monitor.online.domain.OnlineSession; import com.code.project.monitor.online.domain.UserOnline; import com.code.project.monitor.online.domain.OnlineSession.OnlineStatus; import com.code.project.monitor.online.service.IUserOnlineService; /** * 在线用户监控 * * @author ruoyi */@Controller@RequestMapping("/monitor/online")public class UserOnlineController extends BaseController{private String prefix = "monitor/online"; @Autowiredprivate IUserOnlineService userOnlineService; @Autowiredprivate OnlineSessionDAO onlineSessionDAO; @RequiresPermissions("monitor:online:view")@GetMapping()public String online(){return prefix + "/online"; }@RequiresPermissions("monitor:online:list")@PostMapping("/list")@ResponseBodypublic TableDataInfo list(UserOnline userOnline){startPage(); Listlist = userOnlineService.selectUserOnlineList(userOnline); return getDataTable(list); }@RequiresPermissions("monitor:online:batchForceLogout")@Log(title = "在线用户", businessType = BusinessType.FORCE)@PostMapping("/batchForceLogout")@ResponseBodypublic AjaxResult batchForceLogout(@RequestParam("ids[]") String[] ids){for (String sessionId : ids){UserOnline online = userOnlineService.selectOnlineById(sessionId); if (online == null){return error("用户已下线"); }OnlineSession onlineSession = (OnlineSession) onlineSessionDAO.readSession(online.getSessionId()); if (onlineSession == null){return error("用户已下线"); }if (sessionId.equals(ShiroUtils.getSessionId())){return error("当前登陆用户无法强退"); }onlineSession.setStatus(OnlineStatus.off_line); onlineSessionDAO.update(onlineSession); online.setStatus(OnlineStatus.off_line); userOnlineService.saveOnline(online); }return success(); }@RequiresPermissions("monitor:online:forceLogout")@Log(title = "在线用户", businessType = BusinessType.FORCE)@PostMapping("/forceLogout")@ResponseBodypublic AjaxResult forceLogout(String sessionId){UserOnline online = userOnlineService.selectOnlineById(sessionId); if (sessionId.equals(ShiroUtils.getSessionId())){return error("当前登陆用户无法强退"); }if (online == null){return error("用户已下线"); }OnlineSession onlineSession = (OnlineSession) onlineSessionDAO.readSession(online.getSessionId()); if (onlineSession == null){return error("用户已下线"); }onlineSession.setStatus(OnlineStatus.off_line); onlineSessionDAO.update(onlineSession); online.setStatus(OnlineStatus.off_line); userOnlineService.saveOnline(online); return success(); }}
package com.code.project.monitor.server.controller; import org.apache.shiro.authz.annotation.RequiresPermissions; import org.springframework.stereotype.Controller; import org.springframework.ui.ModelMap; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import com.code.framework.web.controller.BaseController; import com.code.project.monitor.server.domain.Server; /** * 服务器监控 * * @author ruoyi */@Controller@RequestMapping("/monitor/server")public class ServerController extends BaseController{private String prefix = "monitor/server"; @RequiresPermissions("monitor:server:view")@GetMapping()public String server(ModelMap mmap) throws Exception{Server server = new Server(); server.copyTo(); mmap.put("server", server); return prefix + "/server"; }}
五,项目总结 本项目界面简洁大方,功能完整,适合做课程设计和毕业设计使用,另外可以在此项目框架的基础上自行添加或修改相关的功能。
到此这篇关于Springboot实例讲解实现专业材料认证管理系统流程的文章就介绍到这了,更多相关Springboot材料认证管理系统内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- Java实现简单学生管理系统
- C++|C++ 继承的范例讲解
- Kotlin示例讲解标准函数with与run和apply的使用
- 若依ruoyiAOP切面用于数据过滤和权限处理实例
- Python|Python object类中的特殊方法代码讲解
- springBoot|SpringBoot整合Spring Security+JWT实现前后端分离登录权限处理
- 面试|SpringBoot 整合Spring Security(简单版)
- 面试|SpringBoot 整合mybatis,mybatis-plus
- C++中string类的常用方法实例总结
- Java|Java SpringBoot项目如何优雅的实现操作日志记录