1.权限开发:jwt,shiro
2.企业报表的解决方法:poi(xls) ,jasper(pdf)
3.代码生成工具的制作与解析
4.企业工作流定制:activiti7
5.人工智能:人脸登录
1 初识SaaS 1.1 云服务的三种模式 1.1.1 IaaS(Infrastructure as a Service)即(基础设施即服务)只提供基础设备,例如服务器(cpu、内存、网络)
1.1.2 PaaS(Platform-as-a-Service)即(平台即服务)包含服务器、操作系统、数据库、运行环境库
1.1.3 SaaS(Software-as-a-Service)(软件即服务)包含服务器、操作系统、数据库、运行环境库、应用
4 工程搭建 4.1 前置知识点的说明 Saas-HRM 系统后端采用 SpringBoot+SpringCloud+SpringMVC+SpringData Saas-HRM 系统前端采用 基于 nodejs 的 vue 框架完成编写使用 element-ui 组件库快速开发前端界面 4.2 开发环境要求 4.2.1 lombok 插件 ( 1 ) idea 中安装插件 ( 2 )在 pom 文件中添加插件的依赖( 3 )常见注解org.projectlombok lombok1.16.16
- @Data 注解在类上;提供类所有属性的 getting 和 setting 方法,此外还提供了equals、canEqual、hashCode、toString 方法
- @Setter :注解在属性上;为属性提供 setting 方法
- @Setter :注解在属性上;为属性提供 getting 方法
- @NoArgsConstructor :注解在类上;为类提供一个无参的构造方法
- @AllArgsConstructor :注解在类上;为类提供一个全参的构造方法
1.选择maven,因为父工程不需要什么骨架,直接next创建
2.应为父工程没有代码,所有把src目录删掉
在 IDEA 中创建父工程 ihrm_parent 并导入相应的坐标如下:4.4 构建公共子模块pom ihrm_parent IHRM-黑马程序员 org.springframework.boot spring-boot-starter-parent2.0.5.RELEASE UTF-8 UTF-8 1.8 1.2.47 org.springframework.boot spring-boot-starter-weborg.springframework.boot spring-boot-starter-loggingorg.springframework.boot spring-boot-starter-testtest com.alibaba fastjson${fastjson.version} org.projectlombok lombok1.16.16 spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false spring-snapshots Spring Snapshots https://repo.spring.io/snapshot true spring-milestones Spring Milestones https://repo.spring.io/milestone false org.apache.maven.plugins maven-compiler-plugin3.1 ${java.version} org.apache.maven.plugins maven-surefire-plugin2.12.4 true
1.放回结果的实体类
2.分布式id生成器
疑问:问什么有了Result还要ResultCode枚举类呢?
其实只要Result也行,不过我们对于多条信息要不断的去get和set值,比较麻烦,所有定义ResultCode枚举类封装信息会比较方便
4.4.1 构建公共子模块ihrm-common 4.4.2 创建返回结果实体类(1)新建com.ihrm.common.entity包,包下创建类Result,用于控制器类返回结果
package com.ihrm.common.entity; import com.fasterxml.jackson.annotation.JsonInclude; import com.fasterxml.jackson.databind.annotation.JsonSerialize; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; @Data @NoArgsConstructor public class Result { private boolean success;//是否成功 private Integer code;// 返回码 private String message;//返回信息 private Object data;// 返回数据 public Result(ResultCode code) { this.success = code.success; this.code = code.code; this.message = code.message; } public Result(ResultCode code,Object data) { this.success = code.success; this.code = code.code; this.message = code.message; this.data = data; } public Result(Integer code,String message,boolean success) { this.code = code; this.message = message; this.success = success; } public static Result SUCCESS(){ return new Result(ResultCode.SUCCESS); } public static Result ERROR(){ return new Result(ResultCode.SERVER_ERROR); } public static Result FAIL(){ return new Result(ResultCode.FAIL); } }
(2)创建类PageResult ,用于返回分页结果
package com.ihrm.common.entity; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.util.List; @Data @AllArgsConstructor @NoArgsConstructor public class PageResult4.4.3 返回码定义类 (是枚举类型){ private Long total; private List rows; }
package com.ihrm.common.entity; public enum ResultCode { SUCCESS(true,10000,"操作成功!"), //---系统错误返回码----- FAIL(false,10001,"操作失败"), UNAUTHENTICATED(false,10002,"您还未登录"), UNAUTHORISE(false,10003,"权限不足"), SERVER_ERROR(false,99999,"抱歉,系统繁忙,请稍后重试!"); //---用户操作返回码---- //---企业操作返回码---- //---权限操作返回码---- //---其他操作返回码---- //操作是否成功 boolean success; //操作代码 int code; //提示信息 String message; ResultCode(boolean success,int code, String message){ this.success = success; this.code = code; this.message = message; } public boolean success() { return success; } public int code() { return code; } public String message() { return message; } }4.4.4 分布式ID生成器
主键id生成
方案一:数据库自增(如果对user表合并就会产生冲突,不推荐)
方案二:uuid全球唯一(缺点:太长,数据量太大)
方案三:借助全局redis(缺点:网络开销太大)
方案四:雪花算法
snowflflake (雪花)算法。 4.5 搭建公共的实体类模块 ( 1 )构建公共子模块 ihrm_common_model(2)引入坐标
5 企业微服务-企业CRUD 5.1 模块搭建 ( 1 )搭建企业微服务模块 ihrm_company, pom.xml 引入依赖org.springframework.boot spring-boot-starter-data-jpaorg.example ihrm_common1.0-SNAPSHOT
( 2 )添加配置文件 application.yml #服务配置 #spring配置 #应用配置 # 数据库连接池 # jpa配置org.springframework.boot spring-boot-starter-data-jpamysql mysql-connector-javaorg.example ihrm_common1.0-SNAPSHOT
server: port: 9001 spring: application: name: ihrm-company #指定服务名 datasource: driver-class-name: com.mysql.jdbc.Driver url: jdbc:mysql://localhost:3306/ihrm?useUnicode=true&characterEncoding=utf8 username: root password: 111111 jpa: database: MySQL show-sql: true open-in-view: true