RBAC原则设计Friday权限管理系统(2)
后端技术
一、构建后端SpringBoot项目
1、使用Spring Initializr构建项目二、使用Spring Data JPA构建数据访问层
(1)创建包‘edu.friday.model’,作为实体对象的生成位置
(2)使用Pe优质资源网点我wcqh.cnrsistence插件生成数据表对应的实体对象(生成持久层)
生成的实体类中有大量的getxxx和setxxx的代码片段,导致实体类比较冗长,可以使用Lombok注解来消除Java类中的大量冗长代码。
1、改写SysUser实体类,再SysUser类上面增加下面三个Lombok注解: @Data:用于给类增加get、set、equals、hashCode和toString方法;@NoArgsConstructor:用于给类增加无参构造器;@AllArgsConstructor:用于给类增加包含所有参数的构造器。
2、将Entity注解放到字段上面,然后删除掉多余的优质资源网点我wcqh.cngetXXX、setXXX、equals和hashCode方法,另外不建议使用原始类型,将userId的long原始类型改为Long封装类型,因为Spring Data JPA默认long的值为0,0在业务中是一个有意义的数值,而Long默认值为NULL;1、在‘edu.friday.repository’包里创建SysUserRepository接口,继承JpaRepository即可实现对SysUser对象的操作
1、在pom.xml文件中添加alibaba druid数据连接池的依赖
<dependency>优质资源网点我wcqh.cn<groupId>com.alibaba</groupId><artifactId>druid-spring-boot-starter</artifactId><version>1.1.10</version></dependency><dependency><groupId>org.apache.commons</groupId><artifactId>commons-pool2</artifactId></dependency>2、resources目录下新建yml文件,做基础配置
3、编写测试类
classFridayApplicationTests{@AutowiredSysUserRep优质资源网点我wcqh.cnository sysUserRepository;@Testvoid contextLoads(){}@Testvoid testLog(){System.out.println(666);}/** * 查找所有用户列表 * */@Testvoid testFindUsers(){System.out.println(sysUserRepository.findAll());}}4、运行结果,成功获取到数据
业务系统的大部分表都有create_time、create_by、update_time、update_by这四个公共字段,用来记录数据的创建和更新时间信息等,为了简化优质资源网点我wcqh.cn代码,编写BaseModel作为Entity基类来管理公共字段。
package edu.friday.common.base;import com.fasterxml.jackson.annotation.JsonFormat;import jakarta.persistence.Column;import jakarta.persistence.MappedSuperclass;import jakarta.persistence.PrePersist;import jakarta.persistence.PreUpdate;import lombok.AllArgsConstructor;importl优质资源网点我wcqh.cnombok.Data;import lombok.NoArgsConstructor;import java.io.Serializable;import java.util.Date;/** * Entity基类 */@MappedSuperclass@Data@NoArgsConstructor@AllArgsConstructorpublicclassBaseModelimplementsSerializable{privatestaticfinallong serialVersionUID =1L;/** * 创建者 */privateString createBy;/** * 创建时间 */@Column(优质资源网点我wcqh.cnupdatable =false)@JsonFormat(pattern =“yyyy-MM-dd HH:mm:ss”)privateDate createTime;/** * 更新者 */privateString updateBy;/** * 更新时间 */@JsonFormat(pattern =“yyyy-MM-dd HH:mm:ss”)privateDate updateTime;@PrePersistprotectedvoid onCreate(){ createTime =newDate();}@PreUpdateprotectedvoid onUpdate(){ updateTime =newDate();}优质资源网点我wcqh.cn}SysUser改写为如下所示
package edu.friday.model;import edu.friday.common.base.BaseModel;import jakarta.persistence.*;import lombok.AllArgsConstructor;import lombok.Data;import lombok.NoArgsConstructor;import java.sql.Timestamp;import java.util.Objects;@Entity@Table(name =“sys_user”, schema =“friday”, catalog =“”)@Data@N优质资源网点我wcqh.cnoArgsConstructor@AllArgsConstructorpublicclassSysUserextendsBaseModel{@GeneratedValue(strategy =GenerationType.IDENTITY)@Id@Column(name =“user_id”)privateLong userId;@Basic@Column(name =“user_name”)privateString userName;@Basic@Column(name =“nick_name”)privateString nickName;@Basic@Column(name =“user_type”)优质资源网点我wcqh.cnprivateString userType;@Basic@Column(name =“email”)privateString email;@Basic@Column(name =“phonenumber”)privateString phonenumber;@Basic@Column(name =“sex”)privateString sex;@Basic@Column(name =“avatar”)privateString avatar;@Basic@Column(name =“password”)privateString password;@Basic@Column(name =“status”)priv优质资源网点我wcqh.cnateString status;@Basic@Column(name =“del_flag”)privateString delFlag;@Basic@Column(name =“login_ip”)privateString loginIp;@Basic@Column(name =“login_date”)privateTimestamp loginDate;/** @Basic @Column(name = “create_by”) private String createBy; @Basic @Column(name = “create_time”)private Timestamp createTime优质资源网点我wcqh.cn; @Basic @Column(name = “update_by”) private String updateBy; @Basic @Column(name = “update_time”) private Timestamp updateTime;*/@Basic@Column(name =“remark”)privateString remark;} 7、工具类与封装HTTP结果© 版权声明
1.如需技术支持联系QQ:1339833655
2. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长!
3. 分享目的仅供大家学习和交流,您必须在下载后24小时内删除!
4. 不得使用于非法商业用途,不得违反国家法律。否则后果自负!
5. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
6. 如有链接无法下载、失效或广告,请联系管理员处理!
7. 本站资源售价只是摆设,本站源码仅提供给会员学习使用!
8. 如遇到加密压缩包,请使用360解压,如遇到无法解压的请联系管理员!
THE END
暂无评论内容