近期项目需要,需要将日志存储到ES当中,因此,我重新开启一个服务,打包为工具包供其他业务系统引用。
/**
- Created by LIUXIANGQIAN202 on 2020-7-29.
- 事件发生的时间、事件类型、客户端IP、客户端机器名、当前用户的标识、受影响的个体(数据、资源)、
- 成功或失败标识、启动该事件的进程标识以及对该事件的详细描述。
- SpringBoot启动时会自动创建映射,但要注意如果已经存在相同的index,必须先删除 */
@Data @Document(indexName = "user") public class UserBehaviorDTO implements Serializable{ @Id private String Id;
@Field(type = FieldType.Long)
private Long userId;
@Field(type = FieldType.String)
private String eventType;
@Field(type = FieldType.String)
private String eventProcessId;
@Field(type = FieldType.String)
private String eventTime;
@Field(type = FieldType.String)
private String eventDesc;
@Field(type = FieldType.String)
private String content;
}
@Aspect @Service public class UserBehaviorLogAspect extends BaseController {
@Autowired
private UserBehaviorService userBehaviorService;
/**
* 环绕通知 @Around , 当然也可以使用 @Before (前置通知) @After (后置通知)
*
* @param point
* @return
* @throws Throwable
*/
@Around("@annotation(userBehaviorLog)")
public Object around(ProceedingJoinPoint point, UserBehaviorLog userBehaviorLog) throws Throwable {
HttpServletRequest request = ((ServletRequestAttributes) (RequestContextHolder.getRequestAttributes())).getRequest();
UserContext userContext = this.getCurrentUserContext();
UserBehaviorDTO userBehaviorDTO = new UserBehaviorDTO();
userBehaviorDTO.setUserId(userContext.getUserId());
userBehaviorDTO.setEventType(userBehaviorLog.eventValue().toString());
Date date = new Date();
SimpleDateFormat formatter= new SimpleDateFormat("yyyy-MM-dd 'at' HH:mm:ss z");
userBehaviorDTO.setEventTime(formatter.format(date));
userBehaviorDTO.setEventDesc(userBehaviorLog.eventDesc());
//Arrays.stream(params).collect(Collectors.toList());
//JsonUtil.toJson(Arrays.stream(params).collect(Collectors.toList()));
//userBehaviorLog.appId();
userBehaviorLog.value();
//user.setConent( JsonUtil.toJson(Arrays.stream(params).collect(Collectors.toList())));
long beginTime = System.currentTimeMillis();
try {
Object result = point.proceed();
return request;
} catch (Throwable e) {
throw e;
} finally {
userBehaviorService.saveUserBehavior(userBehaviorDTO);
System.out.print("aaaaaaaaa");
}
}
解决问题思维
- 当遇到问题时,先尽量自己解决,百度能解决80%的问题
- 刚开始接到任务时,快速搜索用到的技术博客,一定有总结的比较好的
- 当我们在解决问题时,才会深入学习技术底层,了解其原理
- 向优秀的同事学习,学习他们遇到问题时是什么样的状态
- 向他们请教平时是怎么工作和学习的
参考:
- blog.csdn.net/qq_28364999… spring data elasticsearch的 @Documnet 和 @Field 注解
- www.cnblogs.com/zs-notes/p/…
- blog.csdn.net/weixin_3942… spring boot1.x的management.security. enables=false
- blog.csdn.net/besto229/ar… springboot - Actuator监控&401授权