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} ${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



