第一步:先创建一个公共类,实体类可以继承公共类
@Data
@MappedSuperclass
@EntityListeners(AuditingEntityListener.class)
public class BaseEntity {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@CreatedDate
@Column(name = "create_time")
@ApiModelProperty(value = "创建时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
private Date createTime;
@CreatedBy
@Column(name = "create_by")
@ApiModelProperty(value = "创建人")
private String createBy;
@LastModifiedDate
@Column(name = "update_time")
@ApiModelProperty(value = "修改时间")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+08:00")
private Date updateTime;
@LastModifiedBy
@Column(name = "update_by")
@ApiModelProperty(value = "修改人")
private String updateBy;
}
第二步:在启动类开启jpa自动填充功能
第三步:配置用户名填充类
/**
* jpa自动注入用户名
*/
public class MyAuditorAware implements AuditorAware<String> {
@Override
public Optional<String> getCurrentAuditor() {
Map<String, Object> userMap = OauthUserUtil.userMap;
return Optional.ofNullable(userMap.get("username").toString());
}
}
此处我使用的是oauth2方式授权登录的,最终只需要返回 用户名 就行,各自的获取方式不同。按自己需求来获取用户名。