Springboot-data-es的集成demo

315 阅读1分钟

近期项目需要,需要将日志存储到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/u011066470/…