云尚办公系统:搭建环境1 | 您所在的位置:网站首页 › 阿里云办公系统 › 云尚办公系统:搭建环境1 |
云尚办公系统:搭建环境 一、项目介绍 1、介绍 云尚办公系统是一套自动办公系统,系统主要包含:管理端和员工端 管理端包含:权限管理、审批管理、公众号菜单管理 员工端采用微信公众号操作,包含:办公审批、微信授权登录、消息推送等功能 项目服务器端架构:SpringBoot + MyBatisPlus + SpringSecurity + Redis + Activiti+ MySQL 前端架构:vue-admin-template + Node.js + Npm + Vue + ElementUI + Axios 2、核心技术 基础框架:SpringBoot 数据缓存:Redis 数据库:MySQL 权限控制:SpringSecurity 工作流引擎:Activiti 前端技术:vue-admin-template + Node.js + Npm + Vue + ElementUI + Axios 微信公众号:公众号菜单 + 微信授权登录 + 消息推送 3、项目模块 最终服务器端架构模块 guigu-oa-parent:根目录,管理子模块: common:公共类父模块 common-util:核心工具类 service-util:service模块工具类 spring-security:spring-security业务模块 model:实体类模块 service-oa:系统服务模块4、数据库 数据库从资料文件中获取,导入数据库,Activiti表后续自动导入,数据库表如下: 6、其他资源 如:实体类、前端项目模板等都在资料文件夹中,实体类直接复制到model模块,后续不做说明。 二、搭建环境 目前先搭建“云尚办公系统“项目模块。 1、搭建项目结构 1.1、搭建父工程guigu-oa-parent 管理子模块及依赖 GroupId:com.atguigu ArtifactId:guigu-oa-parent 新建项目 直接下一步到完成 删除src目录 1.2、搭建工具类父模块common 工具类父模块 GroupId:com.atguigu ArtifactId:common 第一步:右键点击“guigu-oa-parent”新建"module" 第二步: 同上,忽略 1.3、搭建工具类模块common-util 核心工具类 GroupId:com.atguigu ArtifactId:common-util 第一步:右键点击“common”新建"module" 第二步: 同上,忽略 1.4、搭建工具类模块service-util service模块工具类 搭建方式如:common-util 1.5、搭建实体类模块model 实体类 搭建方式如:common 引入“资料/实体类”相关代码 1.6、搭建项目模块service-oa service服务模块 搭建方式如:common 项目结构如下: 2、配置依赖关系 2.1、guigu-oa-parent父模块管理依赖版本 修改guigu-oa-parent模块pom.xml文件 4.0.0 org.springframework.boot spring-boot-starter-parent 2.3.6.RELEASE com.atguigu guigu-oa-parent pom 1.0-SNAPSHOT common model service-oa 1.8 3.4.1 8.0.30 3.0.3 0.9.1 2.0.21 com.baomidou mybatis-plus-boot-starter ${mybatis-plus.version} mysql mysql-connector-java ${mysql.version} com.github.xiaoymin knife4j-spring-boot-starter ${knife4j.version} io.jsonwebtoken jjwt ${jwt.version} com.alibaba fastjson ${fastjson.version} org.apache.maven.plugins maven-compiler-plugin 3.1 1.8 1.82.2、common模块 common公共父模块 guigu-oa-parent com.atguigu 1.0-SNAPSHOT 4.0.0 common pom service-util common-util2.3、common-util模块 common com.atguigu 1.0-SNAPSHOT 4.0.0 common-util jar org.springframework.boot spring-boot-starter-web provided io.jsonwebtoken jjwt org.projectlombok lombok com.alibaba fastjson2.4、service-util模块 common com.atguigu 1.0-SNAPSHOT 4.0.0 service-util com.atguigu common-util 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-web com.baomidou mybatis-plus-boot-starter mysql mysql-connector-java2.5、model模块 guigu-oa-parent com.atguigu 1.0-SNAPSHOT 4.0.0 model org.projectlombok lombok com.github.xiaoymin knife4j-spring-boot-starter provided com.baomidou mybatis-plus-boot-starter provided从资源文件夹中导入实体类 idea中安装lombok插件,因为目前采用idea2022版本,Lombok在2020.2开始不再更新,导致高版本IDEA(2021及之后版本)无法在Plugins中搜索到Lombok插件,需要手动安装,或者也可以不安装插件,在实体类里面手动生成get、set和构造方法 第一步 到官网下载Lombok插件,https://plugins.jetbrains.com/plugin/6317-lombok/versions 选择最新版本 第二步 修改参数 修改jar包里面文件内容,可以使用压缩工具打开jar包 修改当前idea版本 第三步 在idea的File -> Settings -> Plugins下选中修改参数后的安装包进行安装,安装后重启idea 2.6、service-oa模块 guigu-oa-parent com.atguigu 1.0-SNAPSHOT 4.0.0 service-oa jar com.atguigu model 1.0-SNAPSHOT com.atguigu service-util 1.0-SNAPSHOT org.springframework.boot spring-boot-starter-test test ${project.artifactId} org.springframework.boot spring-boot-maven-plugin三、MyBatis-Plus 官网:https://baomidou.com/ 1、简介 MyBatis-Plus(简称 MP)是一个MyBatis的增强工具,在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。 2、主要特点 无侵入:只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 强大的 CRUD 操作:内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作,更有强大的条件构造器,满足各类使用需求 支持 Lambda 形式调用:通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持主键自动生成:支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 内置代码生成器:采用代码或者 Maven 插件可快速生成 Mapper 、 Model 、 Service 、 Controller 层代码,支持模板引擎,更有超多自定义配置等您来使用 内置分页插件:基于 MyBatis 物理分页,开发者无需关心具体操作,配置好插件之后,写分页等同于普通 List 查询 分页插件支持多种数据库:支持 MySQL、MariaDB、Oracle、DB2、H2、HSQL、SQLite、Postgre、SQLServer 等多种数据库3、依赖 com.baomidou mybatis-plus-boot-starter 3.4.1四、MyBatis-Plus入门 前面介绍了MyBatis-Plus,当前就以角色管理为例讲解MyBatis-Plus的使用 1、配置文件 配置 MySQL 数据库的相关配置及Mybatis-Plus日志 application.yml spring: application: name: service-oa profiles: active: devapplication-dev.yml server: port: 8800 mybatis-plus: configuration: log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # 查看日志 spring: datasource: type: com.zaxxer.hikari.HikariDataSource driver-class-name: com.mysql.cj.jdbc.Driver url: jdbc:mysql://localhost:3306/guigu-oa?serverTimezone=GMT%2B8&useSSL=false&characterEncoding=utf-8 username: root password: root2、启动类 在 Spring Boot 启动类中添加 @MapperScan 注解,扫描 Mapper 文件夹: package com.atguigu; import org.mybatis.spring.annotation.MapperScan; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication @ComponentScan("com.atguigu") @MapperScan("com.atguigu.*.mapper") public class ServiceAuthApplication { public static void main(String[] args) { SpringApplication.run(ServiceAuthApplication.class, args); } }3、实体类 已引入,实体类说明: 实体类注解详细文档 @TableName:表名注解,标识实体类对应的表 @TableId:主键注解,type = IdType.AUTO(数据库 ID 自增) @TableField:字段注解(非主键) @TableLogic:逻辑删除 package com.atguigu.model.system; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableName; import com.atguigu.model.base.BaseEntity; import lombok.Data; @Data @TableName("sys_role") public class SysRole extends BaseEntity { private static final long serialVersionUID = 1L; //角色名称 @TableField("role_name") private String roleName; //角色编码 @TableField("role_code") private String roleCode; //描述 @TableField("description") private String description; }4、添加Mapper类 package com.atguigu.auth.mapper; import com.atguigu.model.auth.SysRole; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Mapper; @Mapper public interface SysRoleMapper extends BaseMapper { }com.baomidou.mybatisplus.core.mapper.BaseMapper这是Mybatis-Plus提供的默认Mapper接口。 package com.baomidou.mybatisplus.core.mapper; import com.baomidou.mybatisplus.core.conditions.Wrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import java.io.Serializable; import java.util.Collection; import java.util.List; import java.util.Map; import org.apache.ibatis.annotations.Param; public interface BaseMapper extends Mapper { int insert(T entity); int deleteById(Serializable id); int deleteByMap(@Param("cm") Map columnMap); int delete(@Param("ew") Wrapper queryWrapper); int deleteBatchIds(@Param("coll") Collection |
CopyRight 2018-2019 实验室设备网 版权所有 |