页面效果如下

分析所需内容

数据库信息如下

t_paper

t_comment

好了 数据库搞定 新建Springboot项目 选择Spring Initializr

pom文件增加引入下面这三个依赖

  1. <!-- mybatis-plus -->
  2. <dependency>
  3. <groupId>com.baomidou</groupId>
  4. <artifactId>mybatis-plus-boot-starter</artifactId>
  5. <version>3.5.1</version>
  6. </dependency>
  7. <!-- lombok -->
  8. <dependency>
  9. <groupId>org.projectlombok</groupId>
  10. <artifactId>lombok</artifactId> <optional>true</optional>
  11. </dependency>
  12. <!-- mysql-connector -->
  13. <dependency>
  14. <groupId>mysql</groupId>
  15. <artifactId>mysql-connector-java</artifactId>
  16. <version>8.0.32</version>
  17. </dependency>

四层架构 直接新建四个包 controller(控制器) entity(实体类) mapper(映射文件)service(服务层)

在生成的resources中会有application.properties 这边我更加喜欢yml格式 显示的更加的舒服易懂 然后进行配置即可

  1. server:
  2. port: 8080
  3. spring:
  4. # 配置数据源信息
  5. datasource:
  6. # 配置数据源类型
  7. type: com.zaxxer.hikari.HikariDataSource
  8. # 配置连接数据库信息
  9. driver-class-name: com.mysql.cj.jdbc.Driver
  10. url: jdbc:mysql://localhost:3306/tess01?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true
  11. username: root(您的数据库用户名)
  12. password: XXXXX(您的数据库密码)
  13. mybatis-plus:
  14. type-aliases-package: com.lps.entity
  15. configuration:
  16. # 配置MyBatis日志,执行sql的时候,将sql打印到控制台
  17. log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
  18. global-config:
  19. db-config:
    #前缀
  20. table-prefix: t_
    #设置id为雪花算法
  21. id-type: assign_id
  22. mapper-locations: classpath:mappers/*.xml

好了 开始整理实体类

Paper.java 因为使用的是雪花算法 Long类型从前台传回来可能会存在精度缺失 您请记得id加上这串注解

  1. @JsonSerialize(using = ToStringSerializer.class)

  1. package com.lps.entity;
  2.  
  3. import com.baomidou.mybatisplus.annotation.TableField;
  4. import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  5. import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
  6. import lombok.Data;
  7.  
  8. @Data
  9. public class Paper {
  10. @JsonSerialize(using = ToStringSerializer.class)
  11. private Long id;//编号
  12. private String title;//主题
  13. private String author;//作者
  14. private String paperType;//类型
  15. private String publishDate;//日期
  16. private Integer state;//状态
  17. @TableField(exist = false)
  18. private Integer cnt;//评论次数
  19. }

HttpResult.java

  1. package com.lps.entity;
  2.  
  3. import lombok.AllArgsConstructor;
  4. import lombok.Data;
  5. import lombok.NoArgsConstructor;
  6.  
  7. @Data
  8. @AllArgsConstructor
  9. @NoArgsConstructor
  10. public class HttpResult {
  11. private int code;//返回code
  12. private String msg;//返回告之情况
  13. private Object data;//返回数据
  14. private int total;//行数
  15. }

实体类搞定之后准备开始精进mapper类

PaperMapper.java 接口

  1. package com.lps.mapper;
  2. import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  3. import com.lps.entity.Paper;
  4.  
  5. import java.util.List;
  6.  
  7. /**
  8. * @author 阿水
  9. * @create 2023-03-01 10:19
  10. */
  11. public interface PaperMapper extends BaseMapper<Paper> {
  12. List<Paper> findAll(Integer pageIndex ,Integer pageSize,String title,String type);
  13.  
  14. }
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
  3. <mapper namespace="com.lps.mapper.PaperMapper">
  4.  
  5. <select id="findAll" resultType="Paper">
  6. SELECT
  7. DISTINCT p.*, (SELECT count(*) FROM t_comment WHERE p_id=c.p_id) AS cnt
  8. FROM
  9. t_paper AS p LEFT JOIN t_comment AS c
  10. ON
  11. p.id=c.p_id
  12. <where>
  13. <if test="title !='null' and title != ''">
  14. AND title like '%${title}%'
  15. </if>
  16. <if test="type !='null' and type != ''">
  17. AND paper_type=#{type}
  18. </if>
  19. </where>
  20. ORDER BY p.publish_date DESC
  21. LIMIT #{pageIndex}, #{pageSize}
  22. </select>
  23.  
  24. </mapper>

映射mapper文件

整理service层面

IPaperService.java 接口

  1. package com.lps.service;
  2. import com.lps.entity.HttpResult;
  3. import com.lps.entity.Paper;
  4.  
  5. /**
  6. * @author 阿水
  7. * @create 2023-03-01 10:21
  8. */
  9. public interface IPaperService {
  10. HttpResult save(Paper paper);
  11. HttpResult modify(Paper paper);
  12. HttpResult remove(Long id );
  13. HttpResult findAll(Integer pageIndex , Integer pageSize, String title, String type);
  14.  
  15. HttpResult findById(Long id);
  16. }

PaperServiceImpl.java接口实现类

  1. package com.lps.service.impl;
  2.  
  3. import com.lps.entity.HttpResult;
  4. import com.lps.entity.Paper;
  5. import com.lps.mapper.PaperMapper;
  6. import com.lps.service.IPaperService;
  7. import org.springframework.beans.factory.annotation.Autowired;
  8. import org.springframework.stereotype.Service;
  9.  
  10. import java.util.List;
  11.  
  12. /**
  13. * @author 阿水
  14. * @create 2023-03-01 10:26
  15. */
  16. @Service
  17. public class PaperServiceImpl implements IPaperService {
  18. @Autowired(required = false)
  19. private PaperMapper paperMapper;
  20.  
  21. @Override
  22. public HttpResult save(Paper paper) {
  23. int insert = paperMapper.insert(paper);
  24. HttpResult httpResult = null;
  25. if (insert > 0) {
  26. httpResult = new HttpResult(200, "添加论文成功", null, 0);
  27. } else {
  28. httpResult = new HttpResult(500, "添加论文失败", null, 0);
  29. }
  30. return httpResult;
  31. }
  32.  
  33. @Override
  34. public HttpResult modify(Paper paper) {
  35. int insert = paperMapper.updateById(paper);
  36. HttpResult httpResult = null;
  37. if (insert > 0) {
  38. httpResult = new HttpResult(200, "修改论文成功", null, 0);
  39. } else {
  40. httpResult = new HttpResult(500, "修改论文失败", null, 0);
  41. }
  42. return httpResult;
  43. }
  44.  
  45. @Override
  46. public HttpResult remove(Long id) {
  47. int insert = paperMapper.deleteById(id);
  48. HttpResult httpResult = null;
  49. if (insert > 0) {
  50. httpResult = new HttpResult(200, "删除论文成功", null, 0);
  51. } else {
  52. httpResult = new HttpResult(500, "删除论文失败", null, 0);
  53. }
  54. return httpResult;
  55. }
  56.  
  57. @Override
  58. public HttpResult findAll(Integer pageIndex, Integer pageSize, String title, String type) {
  59. List<Paper> all = paperMapper.findAll((pageIndex - 1) * pageSize, pageSize, title, type);
  60. HttpResult httpResult = null;
  61. if (all != null && all.size() > 0) {
  62. httpResult = new HttpResult(200, "查询论文成功", all, Math.toIntExact(paperMapper.selectCount(null)));
  63. } else {
  64. httpResult = new HttpResult(500, "查询论文失败", null, 0);
  65. }
  66. return httpResult;
  67. }
  68.  
  69. @Override
  70. public HttpResult findById(Long id) {
  71. Paper paper = paperMapper.selectById(id);
  72. HttpResult httpResult = null;
  73. if (paper != null) {
  74. httpResult = new HttpResult(200, "查询论文成功", paper, Math.toIntExact(paperMapper.selectCount(null)));
  75. } else {
  76. httpResult = new HttpResult(500, "查询论文失败", null, 0);
  77. }
  78. return httpResult;
  79. }
  80. }

最后

控制层PaperController.java

  1. package com.lps.controller;
  2.  
  3. import com.lps.entity.HttpResult;
  4. import com.lps.entity.Paper;
  5. import com.lps.service.IPaperService;
  6. import org.springframework.beans.factory.annotation.Autowired;
  7. import org.springframework.web.bind.annotation.*;
  8.  
  9. import java.text.SimpleDateFormat;
  10. import java.util.Date;
  11.  
  12. /**
  13. * @author 阿水
  14. * @create 2023-03-01 10:45
  15. */
  16. @RestController//标识controller类
  17. @RequestMapping("/paper")//访问前缀
  18. @CrossOrigin(origins = "*")//允许跨端访问
  19. public class PaperController {
  20. @Autowired//自动引入service
  21. private IPaperService paperService;
  22.  
  23. @PostMapping("/save")
  24. public HttpResult save(@RequestBody Paper paper){
  25. SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd");
  26. String dateStr = format.format(new Date());
  27. paper.setPublishDate(dateStr);
  28. return paperService.save(paper);
  29. }
  30.  
  31. @PostMapping("modify")
  32. public HttpResult modify(@RequestBody Paper paper){
  33. return paperService.modify(paper);
  34.  
  35. }
  36.  
  37. @GetMapping("remove")
  38. public HttpResult remove(Long id){
  39. return paperService.remove(id);
  40.  
  41. }
  42.  
  43. @GetMapping("/find_all")//通过 主题、类型 以及分页查询
  44. public HttpResult findAll(Integer pageIndex ,Integer pageSize,String title,String type){
  45. return paperService.findAll(pageIndex,pageSize,title,type);
  46. }
  47.  
  48. @GetMapping("/find_by_id")//通过id查找
  49. public HttpResult findById(Long id){
  50. return paperService.findById(id);
  51. }
  52. }

到此 后端配置的结束啦

开始配置前台页面

 在此我们需要导入这些js文件

链接: https://pan.baidu.com/s/15j89YFwqp24JZCBWcUuW3Q?pwd=lps6 提取码: lps6 复制这段内容后打开百度网盘手机App,操作更方便哦

add.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link href="asset/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
  7. <script src="asset/jquery-3.5.1.min.js"></script>
  8. <script src="asset/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
  9. <script src="asset/vue.min-v2.5.16.js"></script>
  10. <script src="asset/axios.min.js"></script>
  11. </head>
  12. <body>
  13. <iframe name="left_frame" src="left.html" scrolling="no" style="width: 150px; height: 700px;"></iframe>
  14. <iframe name="right_frame" src="paper_list.html" scrolling="no" style="width: 1050px; height: 700px;"></iframe>
  15. </body>
  16. </html>

left.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link href="asset/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
  7. <script src="asset/jquery-3.5.1.min.js"></script>
  8. <script src="asset/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
  9. <script src="asset/vue.min-v2.5.16.js"></script>
  10. <script src="asset/axios.min.js"></script>
  11. </head>
  12. <body style="padding: 0px; margin: 0px;">
  13. <div style="width: 150px; height: 800px; background-color: #5bc0de" id="app">
  14. <ul>
  15. <br>
  16. <li><h3>功能列表</h3></li>
  17. <br>
  18. <div style="margin-top: 30px">
  19. <!-- 距离上面边缘50个像素-->
  20. <li><a href="user_list.html" target="right_frame">用户管理</a></li>
  21. </div>
  22. <br>
  23. <li><a href="thesis_list.html" target="right_frame">论文管理</a></li>
  24. <br>
  25. <li><a href="thesis_list.html" target="right_frame">公共代码</a></li>
  26. <br>
  27. <li><a href="login.html" target="right_frame">退出系统</a></li>
  28. </ul>
  29. </div>
  30. </body>
  31. </html>

main.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link href="asset/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
  7. <script src="asset/jquery-3.5.1.min.js"></script>
  8. <script src="asset/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
  9. <script src="asset/vue.min-v2.5.16.js"></script>
  10. <script src="asset/axios.min.js"></script>
  11. </head>
  12. <body>
  13. <iframe name="left_frame" src="left.html" scrolling="no" style="width: 150px; height: 700px;"></iframe>
  14. <iframe name="right_frame" src="paper_list.html" scrolling="no" style="width: 1050px; height: 700px;"></iframe>
  15. </body>
  16. </html>

paper_list.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link href="asset/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
  7. <script src="asset/jquery-3.5.1.min.js"></script>
  8. <script src="asset/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
  9. <script src="asset/vue.min-v2.5.16.js"></script>
  10. <script src="asset/axios.min.js"></script>
  11. </head>
  12. <body class="container" style="padding: 0px; margin: 0px; background-color: pink">
  13. <div id="app" style="width: 1050px; height: 700px;">
  14. <div class="navbar-form">
  15. 主题:
  16. <input type="text" class="form-control" v-model="paperTitle">
  17. 类型:
  18. <select v-model="paperType">
  19. <option value=""></option>
  20. <option value="应用型">应用型</option>
  21. <option value="学术型">学术型</option>
  22. </select>
  23. <button class="btn btn-link" @click="doSearch()">查询</button>
  24. <button class="btn btn-link" @click="doAdd()">添加</button>
  25. </div>
  26. <table class="table table-striped">
  27. <thead>
  28. <caption>论文列表</caption>
  29. <tr>
  30. <th>编号</th>
  31. <th>主题</th>
  32. <th>作者</th>
  33. <th>类型</th>
  34. <th>状态</th>
  35. <th>发表时间</th>
  36. <th>评论次数</th>
  37. <th>操作</th>
  38. </tr>
  39. </thead>
  40. <tbody>
  41. <tr v-for="t in paperList">
  42. <td>{{t.id}}</td>
  43. <td>{{t.title}}</td>
  44. <td>{{t.author}}</td>
  45. <td>{{t.paperType}}</td>
  46. <td>{{t.state == 0 ? '未发布' : '已发布'}}</td>
  47. <td>{{t.publishDate}}</td>
  48. <td>{{t.cnt}}</td>
  49. <td>
  50. <button class="btn btn-link" @click="doUpdate(t.id)">编辑</button>
  51. <button class="btn btn-link" @click="doDelete(t.id)">删除</button>
  52. </td>
  53. </tr>
  54. </tbody>
  55. </table>
  56. <div style="text-align: center">
  57. <ul class="pagination" v-for="p in pageNum">
  58. <li class="active" v-if="p == pageIndex"><a href="#" @click="doGo(p)">{{p}}</a></li>
  59. <li v-else="p==pageIndex"><a href="#" @click="doGo(p)">{{p}}</a></li>
  60.  
  61. </ul>
  62. </div>
  63.  
  64. </div>
  65. <script>
  66. new Vue({
  67. el: '#app',
  68. data: {
  69.  
  70. paperType:null,
  71.  
  72. paperTitle: null,
  73. paperList: null,
  74. pageIndex: 1,//页码
  75. pageSize: 5,//每页显示的条数
  76. pageTotal: 0,//总条数
  77. pageNum: 0//共多少页
  78.  
  79. },
  80. methods: {
  81. requestPaperList(url) {
  82. axios.get(url).then(res => {
  83. console.log(res.data)
  84. this.paperList = res.data.data
  85. this.pageTotal = res.data.total
  86. this.pageNum = Math.ceil(this.pageTotal / this.pageSize);
  87. })
  88. },
  89. doGo(p) {
  90. this.pageIndex = p;
  91. url = "http://localhost:8080/paper/find_all?pageIndex=" + p + "&pageSize=" + this.pageSize+"&title="+this.paperTitle+"&type="+this.paperType
  92. this.requestPaperList(url);
  93. },
  94.  
  95. doDelete(id) {
  96. axios.get("http://localhost:8080/paper/remove?id="+id).then(res => {
  97. console.log(res.data)
  98. if (res.data.code==200){
  99. this.pageIndex=1;
  100. url = "http://localhost:8080/paper/find_all?pageIndex=" + this.pageIndex + "&pageSize=" + this.pageSize+"&title="+this.paperTitle+"&type="+this.paperType
  101. this.requestPaperList(url);
  102. }else {
  103. alert(res.data.msg)
  104. }
  105. })
  106.  
  107. },
  108. doSearch(){
  109. url = "http://localhost:8080/paper/find_all?pageIndex=" + 1 + "&pageSize=" + this.pageSize+"&title="+this.paperTitle+"&type="+this.paperType
  110. this.requestPaperList(url)
  111. },
  112. doAdd(){
  113. // window.parent.right_frame.location="add.html"
  114. window.location.href="add.html"
  115. },
  116. doUpdate(id) {
  117. window.location.href="update.html?id="+id
  118. },
  119.  
  120. },
  121. created: function () {
  122. url = "http://localhost:8080/paper/find_all?pageIndex=" + this.pageIndex + "&pageSize=" + this.pageSize+"&title="+this.paperTitle+"&type="+this.paperType
  123. this.requestPaperList(url);
  124.  
  125. }
  126. })
  127. </script>
  128. </body>
  129. </html>

update.html

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <title>Title</title>
  6. <link href="asset/bootstrap-3.3.7-dist/css/bootstrap.min.css" rel="stylesheet">
  7. <script src="asset/jquery-3.5.1.min.js"></script>
  8. <script src="asset/bootstrap-3.3.7-dist/js/bootstrap.min.js"></script>
  9. <script src="asset/vue.min-v2.5.16.js"></script>
  10. <script src="asset/axios.min.js"></script>
  11. </head>
  12. <body class="container">
  13. <div id="app">
  14. <h3>修改论文</h3>
  15. <div class="navbar-form">
  16. 主题:
  17. <input type="text" class="form-control" v-model="paperTitle">
  18. </div>
  19. <div class="navbar-form">
  20. 作者:
  21. <input type="text" class="form-control" v-model="paperAuthor">
  22. </div>
  23. <div class="navbar-form">
  24. 类型:
  25. <select class="form-control" v-model="paperType">
  26. <option value=""></option>
  27. <option value="应用型">应用型</option>
  28. <option value="学术型">学术型</option>
  29. </select>
  30. </div>
  31. <div class="navbar-form" >
  32. 状态:
  33. <select class="form-control" v-model="paperState">
  34. <option value=""></option>
  35. <option value="0">未发布</option>
  36. <option value="1">已发布</option>
  37. </select>
  38. </div>
  39. <div class="navbar-form">
  40. <button class="btn btn-primary" @click="doSave()">修改</button>
  41. </div>
  42. </div>
  43. <script>
  44. new Vue({
  45. el: '#app',
  46. data: {
  47. id: null,
  48. paperTitle: null,
  49. paperAuthor: null,
  50. paperType: null,
  51. paperState: null
  52. },
  53. methods: {
  54. doSave() {
  55. axios.post("http://localhost:8080/paper/modify", {
  56. id:this.id,
  57. title: this.paperTitle,
  58. author: this.paperAuthor,
  59. paperType: this.paperType,
  60. state: this.paperState
  61. }).then(res => {
  62. console.log(res.data)
  63. if (res.data.code == 200) {
  64. // window.parent.right_frame.location = "paper_list.html"
  65. window.location.href = "paper_list.html";
  66. } else {
  67. alert(res.data.msg);
  68. }
  69. })
  70. }
  71. },
  72. created: function () {
  73. url = window.location.href;
  74. this.id = url.substring(url.indexOf("id=") + 3)
  75. /* console.log(this.id)
  76. console.log(url)*/
  77.  
  78. axios.get("http://localhost:8080/paper/find_by_id?id="+this.id).then(res => {
  79. this.paperTitle = res.data.data.title
  80. this.paperAuthor = res.data.data.author
  81. this.paperType = res.data.data.paperType
  82. this.paperState = res.data.data.state
  83. console.log(res.data)
  84.  
  85. })
  86. }
  87. })
  88. </script>
  89. </body>
  90. </html>

好啦 搞定啦

整体包结构 感谢您看完了!!!hh

 

使用springboot+MybatisPlus+vue实现论文基础管理系统的更多相关文章

  1. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(一): 搭建基本环境、整合 Swagger、MyBatisPlus、JSR303 以及国际化操作

    相关 (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y- ...

  2. SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 后端篇(五): 数据表设计、使用 jwt、redis、sms 工具类完善注册登录逻辑

    (1) 相关博文地址: SpringBoot + Vue + ElementUI 实现后台管理系统模板 -- 前端篇(一):搭建基本环境:https://www.cnblogs.com/l-y-h/p ...

  3. 一步步使用SpringBoot结合Vue实现登录和用户管理功能

    前后端分离开发是当今开发的主流.本篇文章从零开始,一步步使用SpringBoot结合Vue来实现日常开发中最常见的登录功能,以及登录之后对用户的管理功能.通过这个例子,可以快速入门SpringBoot ...

  4. spring-boot+quartz的CRUD动态任务管理系统

    版权声明:作者: 小柒 出处: https://blog.52itstyle.com 分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大 ...

  5. Vue + Element-ui实现后台管理系统(5)---封装一个Form表单组件和Table表格组件

    封装一个Form表单组件和Table组件 有关后台管理系统之前写过四遍博客,看这篇之前最好先看下这四篇博客.另外这里只展示关键部分代码,项目代码放在github上: mall-manage-syste ...

  6. vue+element-ui JYAdmin后台管理系统模板-集成方案【项目搭建篇2】

    项目搭建时间:2020-06-29 本章节:讲述基于vue/cli, 项目的基础搭建. 本主题讲述了: 1.跨域配置 2.axios请求封装 3.eslint配置 4.环境dev,test,pro(开 ...

  7. 不要再学 JSP 了,学 SpringBoot + Thymeleaf + Vue吧

    老读者就请肆无忌惮地点赞吧,微信搜索[沉默王二]关注这个在九朝古都洛阳苟且偷生的程序员.本文 GitHub github.com/itwanger 已收录,里面还有我精心为你准备的一线大厂面试题. 读 ...

  8. 保姆级别的vue + ElementUI 搭建后台管理系统教程

    vue + ElementUI 搭建后台管理系统记录 本文档记录了该系统从零配置的完整过程 项目源码请访问:https://gitee.com/szxio/vue2Admin,如果感觉对你有帮助,请点 ...

  9. 数字化转型之数字资产知识库(springboot+es+vue+neo4j)

    前言 在数字化高度普及的时代,企事业机关单位在日常工作中会产生大量的文档,例如医院制度汇编,企业知识共享库等.针对这些文档性的东西,手工纸质化去管理是非常消耗工作量的,并且纸质化查阅难,易损耗,所以电 ...

  10. SpringBoot&MyBatisPlus

    5. SpringBoot 学习目标: 掌握基于SpringBoot框架的程序开发步骤 熟练使用SpringBoot配置信息修改服务器配置 基于SpringBoot完成SSM整合项目开发 5.1 入门 ...

随机推荐

  1. repmgr部署和测试

    https://www.modb.pro/db/22029 https://blog.csdn.net/qq_34479012/article/details/125706815?app_versio ...

  2. usb 2.0枚举过程

    device枚举过程: hub枚举过程:

  3. ksfitappUI自动化(准备+安装环境)

    一.原理+安装 https://blog.csdn.net/weixin_30624825/article/details/94803252 https://www.kancloud.cn/guanf ...

  4. 越权检测 burp插件 autorize 使用

    Autorize 官方描述 Autorize 是 Burp Suite 的自动授权强制检测扩展.它是由应用程序安全专家 Barak Tawily 用 Python 编写的.Autorize 旨在通过执 ...

  5. lua-table类的继承

    --男人类man = {name = "man",age=123}--继承空间man.__index=man--儿童类child= {}--继承setmetatable(child ...

  6. 图片上传造成VS关闭

    原来的地方:https://q.cnblogs.com/q/129719/ VS2019开启调试,测试图片上传的时候,一点到图片上传,直接导致VS调试崩掉,返回 程序"[14764] iis ...

  7. yaml文件读取转化为类

    首先你要有一个文件读取的方法,写一个根据传入路径 + 类来自动返回对应类的方法. /** * 根据传入的path,加载配置文件内容到对应class中 */ public static <T> ...

  8. nginx: the "ssl" parameter requires ngx_http_ssl_module in /usr/local/nginx/conf/nginx.conf

    Nginx如果未开启SSL模块,配置Https时将提示如题错误 原因:nginx缺少http_ssl_module模块,编译安装的时候带上--with-http_ssl_module配置就行了,但是现 ...

  9. 像MIUI一样做Zabbix二次开发(5)——那些坑和优化方向

    踩过的那些坑 从2011年开始玩Zabbix,踩过的坑着实不少,被研发的同事吐了无数槽,所谓"情到深度又爱又恨".以下简述印象比较深刻的几个坑: 二次开发的方式:2011刚开始做的 ...

  10. java & spring 注解 备忘

    java deprecated 注解 1 /** 2 * General service for all common business logic. 3 * 4 * @author wanghaip ...