1 痛点
在Java中,需要写日志的时候,在class上添加@Slf4j,然后,lombok会自动给class中注入一个属性“log”,你就可以写日志了:
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class GlobalHandlerException{
@ExceptionHandler(IllegalArgumentException.class)
@ResponseStatus(HttpStatus.BAD_REQUEST)
@ResponseBody
public void handlerException(IllegalArgumentException e) {
log.warn(e.getMessage(), e);
throw e;
}
}
Lombok使用javac处理注解,修改字节码;当kotlin编译器运行时,也使用javac。所以,kotlin要达到与Java相同的效果,就必须严格限定编译顺序:先Java,后Kotlin。但,这么做的话,Java不能调用kotlin的代码。
2 kotlin的log
import org.slf4j.LoggerFactory
class GlobalHandlerException{
val log = LoggerFactory.getLogger(this.javaClass)
}
代码还是有点长...
3 解决方案
思路:使用Intellij IDEA的自动代码补全,减少工作量
File --> Settings --> Editor --> Live Template
快试试好使么 :blush: