java treemaker_lombok自定义扩展实践

本文介绍了如何使用Lombok扩展自定义注解`@LogBefore`,该注解能在方法前自动插入日志代码。通过创建注解、注解处理器和处理逻辑,实现了在编译时自动添加日志的功能,减少了模板代码。
摘要由CSDN通过智能技术生成

lombok是一款能够在java代码编译阶段改变代码的插件。比如生成setter和getter方法,生成log类变量等,能够简化一些特定的模版式代码。本文将以实现一个基于特定注解生成日志代码的方式,简单介绍在lombok基础上自定义扩展的方式。

1、实现功能

基于自定义注解,将下面的代码块1变成代码块2,自动生成日志代码:

//代码块1

static void m1(Map req) {

System.out.println("m1 running");

}

//代码块2

static void m1(Map req) {

log.info("Application.m1 req:{}", JSON.toJSONString(req));

System.out.println("m1 running");

}

2、环境准备

首先搭建lombok工程,git地址:https://github.com/rzwitserloot/lombok,并安装ant环境,lombok需要使用ant编译,并下载openjdk(可选),使用openjdk有助于理解javac的源码,因为默认jkd是没有javac的源码的。

关于这些环境,自己想办法百度去搞定吧!

3、核心实现

自定义注解:

package lombok.extern.youzan;

import java.lang.annotation.ElementType;

import java.lang.annotation.Retention;

import java.lang.annotation.RetentionPolicy;

import java.lang.annotation.Target;

/**

*

* Date: 2018/5/26

* @author xuzhiyi

*/

@Target({ElementType.METHOD})

@Retention(RetentionPolicy.SOURCE)

public @interface LogBefore {

String level() default "info";

}

这个注解是用来作用在方法上,来表示需要在方法第一行增加代码,log方法传入的参数;

自定义注解解析:

package lombok.javac.handlers;

import com.sun.tools.javac.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值