创建User类 测试类只有一个name属性
复制代码
1
2
3
4
5
6@Entity @Table(name = "UcenterUser") @Data public class User extends BaseEntity{ private String name; }
抽取一个基类BaseEntity
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23@EntityListeners(AuditingEntityListener.class) 添加监听器 @MappedSuperclass @Getter @Setter public class BaseEntity { @Id @GeneratedValue(generator = "IDGenerator") @GenericGenerator(name = "IDGenerator",strategy = "uuid2") private String id; @CreatedDate private Date gmtCreate; @CreatedBy private String createUserId; @LastModifiedDate private Date gmtModified; @LastModifiedBy private String updateUserId; }
创建配置类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20@Configuration @EnableJpaAuditing 这个会创建该功能的相关类 public class AuditorConfiguration { public AuditorConfiguration(){ System.out.println("spring容器启动初始化----审计配置"); } @Bean public AuditorAware<User> auditorProvider() { 自定义一个审计信息获取一些用户信息 return new AuditorAware(){ @Override public Optional<String> getCurrentAuditor() { Random random = new Random(); String str = ""+random.nextInt(100021); System.out.println("用户名-----------"+str); return Optional.of(str); } }; } }
创建Dao接口 这里使用jpa相关功能
复制代码
1
2
3@Repository public interface UserRepository extends JpaRepository<User,String>{ }
相关测试接口
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29@RestController @SpringBootApplication public class WkApplication { @Autowired UserRepository userRepository; @RequestMapping("/") Object home(){ 创建用户 User user1 = new User(); user1.setName("zymdfhf"); userRepository.save(user1); return userRepository.findAll(); } @RequestMapping("/{id}") Object test1(@PathVariable("id")User user){ System.out.println(user); Random random = new Random(); user.setName(""+random.nextInt(100000)); userRepository.flush(); 修改用户来测试审计信息更新 return user; } public static void main(String[] args) { SpringApplication.run(WkApplication.class, args); } }
运行项目访问 创建了一个user 并自动插入里相关字段
接着调用修改接口修改了name值 执行修改
自动写值成功了。。。。
出现了一个新的问题 gmtCreate的时间精度出现问题
修改BaseEntity类
复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27@EntityListeners(AuditingEntityListener.class) @MappedSuperclass @Getter @Setter public class BaseEntity { @Id @GeneratedValue(generator = "IDGenerator") @GenericGenerator(name = "IDGenerator",strategy = "uuid2") protected String id; @CreatedDate @Temporal(TemporalType.TIMESTAMP) @Column(columnDefinition="datetime(3)") protected Date gmtCreate; @CreatedBy protected String createUserId; @LastModifiedDate @Temporal(TemporalType.TIMESTAMP) @Column(columnDefinition="datetime(3)") protected Date gmtModified; @LastModifiedBy protected String updateUserId; }
重新进行以上步骤就行了
最后
以上就是单身服饰最近收集整理的关于spring boot 使用审计的全部内容,更多相关spring内容请搜索靠谱客的其他文章。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复