文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Spring Data JPA如何实现审计功能

2023-07-05 06:04

关注

本文小编为大家详细介绍“Spring Data JPA如何实现审计功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“Spring Data JPA如何实现审计功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。

实现该功能,主要涉及到下列注解:

如何使用

一、引入依赖;

<dependency>     <groupId>org.springframework.boot</groupId>     <artifactId>spring-boot-starter-data-jpa</artifactId></dependency>

二、实现AuditorAware接口,来自定义获取用户的信息;在实际项目中需要从用户权限模块中获取到当前登录用户的实际信息;

package com.xxkfz.simplememory.config;import org.springframework.context.annotation.Configuration;import org.springframework.data.domain.AuditorAware;import java.util.Optional;@Configurationpublic class SpringSecurityAuditorAware implements AuditorAware<String> {    @Override    public Optional<String> getCurrentAuditor() {        return Optional.of("xxkfz");    }}

三、 创建实体类,并标记审计属性;

package com.xxkfz.simplememory.entity;import lombok.Data;import org.springframework.data.annotation.CreatedBy;import org.springframework.data.annotation.CreatedDate;import org.springframework.data.annotation.LastModifiedBy;import org.springframework.data.annotation.LastModifiedDate;import org.springframework.data.jpa.domain.support.AuditingEntityListener;import javax.persistence.*;import java.util.Date;@Data@EntityListeners({AuditingEntityListener.class})@Entity@Table(name = "t_user")public class SysUser {    @Id    @Column(name = "id")    private String id;    @Column(name = "username")    private String username;    @Column(name = "password")    private String password;    @CreatedBy    @Column(name = "created_by")    private String createdBy;    @LastModifiedBy    @Column(name = "last_modified_by")    private String lastModifiedBy;    @CreatedDate    @Column(name = "created_date")    private Date createdDate;    @LastModifiedDate    @Column(name = "last_modified_date")    private Date lastModifiedDate;    @Column(name = "real_name")    private String realName;}

四、创建JPA Repository接口实现,用于对数据访问;

package com.xxkfz.simplememory.repository;import com.xxkfz.simplememory.entity.SysUser;import org.springframework.data.jpa.repository.JpaRepository;import org.springframework.stereotype.Repository;@Repositorypublic interface UserRepository extends JpaRepository<SysUser, String> {}

五、在启动类上添加注解@EnableJpaAuditing

package com.xxkfz.simplememory;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import org.springframework.data.jpa.repository.config.EnableJpaAuditing;@EnableJpaAuditing@SpringBootApplicationpublic class SimpleMemoryApplication {    public static void main(String[] args) {        SpringApplication.run(SimpleMemoryApplication.class, args);    }}

六、编写测试类,进行测试;

package com.xxkfz.simplememory.controller.system;import cn.hutool.core.lang.UUID;import com.xxkfz.simplememory.entity.SysUser;import com.xxkfz.simplememory.mapper.SysOrderMapper;import com.xxkfz.simplememory.repository.UserRepository;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping("/sys_user")@Slf4jpublic class SysUserController {    @Autowired    UserRepository userRepository;    @GetMapping("save")    public void save() {        SysUser user = new SysUser();        user.setId(UUID.fastUUID().toString());        user.setUsername("公众号【SimpleMemory】");        SysUser sysUser = userRepository.save(user);        log.info("sysUser === {}", sysUser);    }    @GetMapping("update")    public void update() {        SysUser sysUser = userRepository.getById("1");        sysUser.setUsername("admin");        SysUser updateSysUser = userRepository.save(sysUser);        log.info("updateSysUser === {}", updateSysUser);    }}

读到这里,这篇“Spring Data JPA如何实现审计功能”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯