最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Springboot實(shí)例講解實(shí)現(xiàn)專業(yè)材料認(rèn)證管理系統(tǒng)流程

 更新時間:2022年06月06日 10:54:44   作者:編程指南針  
這是一個基于java的畢業(yè)設(shè)計(jì)項(xiàng)目,畢設(shè)課題為springboot框架的知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng),是一個采用b/s結(jié)構(gòu)的javaweb項(xiàng)目,需要的朋友可以參考下

一,項(xiàng)目簡介

這是一個基于java的畢業(yè)設(shè)計(jì)項(xiàng)目,畢設(shè)課題為springboot框架的知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng), 是一個采用b/s結(jié)構(gòu)的javaweb項(xiàng)目, 開發(fā)工具eclipsei/eclipse, 項(xiàng)目框架jsp+springboot+mybatis, 知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng)采用mysql進(jìn)行數(shù)據(jù)存儲, 并基于mybatis進(jìn)行了orm實(shí)體關(guān)系映射, 該知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng)系統(tǒng)通過模塊化實(shí)現(xiàn),支持多角色權(quán)限管理系統(tǒng), 提升了管理效率, 知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng)參考文獻(xiàn)可見附件中的畢業(yè)論文與畢設(shè)源碼

該知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng)項(xiàng)目采用mvc設(shè)計(jì)模式, 其中知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng)的視圖與知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng)業(yè)務(wù)邏輯進(jìn)行了分層設(shè)計(jì), 特別方便后續(xù)知識產(chǎn)權(quán)服務(wù)平臺系統(tǒng)系統(tǒng)的開發(fā)

設(shè)計(jì)這種mvc的架構(gòu)的好處是完全的可以將業(yè)務(wù)進(jìn)行分層, 進(jìn)行高內(nèi)聚低耦合, 分為service層, dao層, controller層, 架構(gòu)清晰

本項(xiàng)目主要基于Springboot 和ruoyi來開發(fā)一套專業(yè)認(rèn)證材料管理系統(tǒng),對各專業(yè)相關(guān)的文檔材料進(jìn)行管理,主要包含的功能模塊有:

系統(tǒng)管理:用戶管理、角色管理、菜單管理、操作日志

業(yè)務(wù)模塊:專業(yè)管理、認(rèn)證材料管理、相關(guān)網(wǎng)站管理

二,環(huán)境介紹

語言環(huán)境:Java: jdk1.8

數(shù)據(jù)庫:Mysql: mysql5.7

應(yīng)用服務(wù)器:Tomcat: tomcat8.5.31

開發(fā)工具:IDEA或eclipse

開發(fā)技術(shù):Springboot+ruoyi+bootstrap

三,系統(tǒng)展示

用戶登陸:

用戶注冊:

用戶管理

角色管理

菜單管理

操作管理

專業(yè)管理

認(rèn)證材料管理

相關(guān)網(wǎng)站

個人中心

修改密碼

四,核心代碼展示

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
 */
@Controller
public class CommonController
{
    private static final Logger log = LoggerFactory.getLogger(CommonController.class);
    @Autowired
    private 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")
    @ResponseBody
    public 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();
        // 數(shù)據(jù)庫資源地址
        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;
/**
 * 在線用戶監(jiān)控
 * 
 * @author ruoyi
 */
@Controller
@RequestMapping("/monitor/online")
public class UserOnlineController extends BaseController
{
    private String prefix = "monitor/online";
    @Autowired
    private IUserOnlineService userOnlineService;
    @Autowired
    private OnlineSessionDAO onlineSessionDAO;
    @RequiresPermissions("monitor:online:view")
    @GetMapping()
    public String online()
    {
        return prefix + "/online";
    }
    @RequiresPermissions("monitor:online:list")
    @PostMapping("/list")
    @ResponseBody
    public TableDataInfo list(UserOnline userOnline)
    {
        startPage();
        List<UserOnline> list = userOnlineService.selectUserOnlineList(userOnline);
        return getDataTable(list);
    }
    @RequiresPermissions("monitor:online:batchForceLogout")
    @Log(title = "在線用戶", businessType = BusinessType.FORCE)
    @PostMapping("/batchForceLogout")
    @ResponseBody
    public 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("當(dāng)前登陸用戶無法強(qiáng)退");
            }
            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")
    @ResponseBody
    public AjaxResult forceLogout(String sessionId)
    {
        UserOnline online = userOnlineService.selectOnlineById(sessionId);
        if (sessionId.equals(ShiroUtils.getSessionId()))
        {
            return error("當(dāng)前登陸用戶無法強(qiáng)退");
        }
        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;
/**
 * 服務(wù)器監(jiān)控
 * 
 * @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";
    }
}

五,項(xiàng)目總結(jié)

本項(xiàng)目界面簡潔大方,功能完整,適合做課程設(shè)計(jì)和畢業(yè)設(shè)計(jì)使用,另外可以在此項(xiàng)目框架的基礎(chǔ)上自行添加或修改相關(guān)的功能。

到此這篇關(guān)于Springboot實(shí)例講解實(shí)現(xiàn)專業(yè)材料認(rèn)證管理系統(tǒng)流程的文章就介紹到這了,更多相關(guān)Springboot材料認(rèn)證管理系統(tǒng)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • springboot?實(shí)現(xiàn)不同context-path下的會話共享

    springboot?實(shí)現(xiàn)不同context-path下的會話共享

    這篇文章主要介紹了springboot?實(shí)現(xiàn)不同context-path下的會話共享,基于很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-01-01
  • Java實(shí)現(xiàn)網(wǎng)絡(luò)文件下載以及下載到指定目錄

    Java實(shí)現(xiàn)網(wǎng)絡(luò)文件下載以及下載到指定目錄

    在Spring框架中,StreamUtils和FileCopyUtils兩個工具類提供了方便的文件下載功能,它們都屬于org.springframework.util包,可以通過簡單的方法調(diào)用實(shí)現(xiàn)文件流的復(fù)制和下載,這些工具類支持多種參數(shù)傳遞,涵蓋了文件下載的多種場景
    2024-09-09
  • 如何通過eclipse web項(xiàng)目導(dǎo)入itellij idea并啟動

    如何通過eclipse web項(xiàng)目導(dǎo)入itellij idea并啟動

    這篇文章主要介紹了如何通過eclipse web項(xiàng)目導(dǎo)入itellij idea并啟動,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-12-12
  • Java中如何保證緩存一致性問題

    Java中如何保證緩存一致性問題

    這篇文章主要介紹了Java中如何保證緩存一致性問題,文章將通過主題提出的問題展開一些解決方案分析,需要的小伙伴可以參考一下
    2022-04-04
  • Java實(shí)現(xiàn)枚舉狀態(tài)轉(zhuǎn)換的方法詳解

    Java實(shí)現(xiàn)枚舉狀態(tài)轉(zhuǎn)換的方法詳解

    在軟件開發(fā)中,我們經(jīng)常需要處理不同系統(tǒng)或模塊間的狀態(tài)轉(zhuǎn)換,今天,我將通過一個電商訂單與物流狀態(tài)的轉(zhuǎn)換案例,展示如何優(yōu)雅地實(shí)現(xiàn)枚舉間的互相轉(zhuǎn)換,需要的朋友可以參考下
    2025-04-04
  • Java中的SuppressWarnings注解使用

    Java中的SuppressWarnings注解使用

    這篇文章主要介紹了Java中的SuppressWarnings注解使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-11-11
  • SpringBoot整合SpringSecurity和JWT的示例

    SpringBoot整合SpringSecurity和JWT的示例

    這篇文章主要介紹了SpringBoot整合SpringSecurity和JWT的示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • java簡單實(shí)現(xiàn)數(shù)組的增刪改查方法

    java簡單實(shí)現(xiàn)數(shù)組的增刪改查方法

    這篇文章主要介紹了Java數(shù)組的增刪改查的示例,幫助大家更好的利用Java處理數(shù)據(jù),感興趣的朋友可以了解下,希望能給你帶來幫助
    2021-07-07
  • IDEA編寫SpringBoot項(xiàng)目時使用Lombok報錯“找不到符號”的原因和解決

    IDEA編寫SpringBoot項(xiàng)目時使用Lombok報錯“找不到符號”的原因和解決

    本文主要介紹了IDEA編寫SpringBoot項(xiàng)目時使用Lombok報錯“找不到符號”,詳細(xì)介紹了幾種可能會出現(xiàn)的問題及其解決方法,具有一定的參考價值,感興趣的可以了解一下
    2025-03-03
  • jdbc和mybatis的流式查詢使用方法

    jdbc和mybatis的流式查詢使用方法

    有些時候我們所需要查詢的數(shù)據(jù)量比較大,但是jvm內(nèi)存又是有限制的,數(shù)據(jù)量過大會導(dǎo)致內(nèi)存溢出。這個時候就可以使用流式查詢,本文就主要介紹了jdbc和mybatis的流式查詢,感興趣的可以了解一下
    2021-11-11

最新評論

若尔盖县| 洛南县| 荆门市| 鸡泽县| 义马市| 武夷山市| 开平市| 江门市| 浏阳市| 息烽县| 江永县| 长丰县| 同德县| 海南省| 攀枝花市| 布尔津县| 广宗县| 剑阁县| 莆田市| 灵武市| 双桥区| 荥经县| 沭阳县| 息烽县| 临城县| 茶陵县| 贵德县| 张家港市| 井陉县| 大理市| 常州市| 黄骅市| 紫金县| 龙海市| 梓潼县| 东乌| 梁平县| 东光县| 泰安市| 雅安市| 高雄市|