Lombok + @slf4j注解 + log 变量来源

本文探讨了在Java中使用Lombok的@slf4j注解后,log变量如何直接可用的原因。原来,Lombok在编译时会自动插入相应的代码,确保log对象被正确声明,使得开发者可以专注于应用程序的核心逻辑,而非底层日志实现的细节。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

@Controller
@EnableScheduling
//这个注解是lombok的,所以在使用的时候需要先集成lombok
@Slf4j   
@RequestMapping("student")
@Api(tags = "操作student数据库!")
public class StudentController {

    @Autowired
    StudentService studentService;

    // 插入
    @ApiOperation("插入一条数据哦!")
    @RequestMapping("insert")
    @ResponseBody
    public int insert(@RequestBody StudentVO studentVO) {
        //在方法中就可以直接使用log日志对象了
        log.info("开始进行数据插入!");
        // 采用Mybatis-plus的写法
        studentService.save(studentVO);
        log.info("数据插入结束!");
        return 100;
    }
}

为什么使用@slf4j注解后,log变量可以直接使用?这个log对象是在哪里声明的呢

因为使用注解后,lombok会在编译后自动加上这段代码,所以log变量可以直接使用。知道是lombok在程序编译的时候给加的就好了,不必过度追根问底,毕竟我们更应该关注应用。即:程序build时,lombok会在使用了@Slf4j注解的类里生成如下代码(见下面截图):

private static final Logger log = LoggerFactory.getLogger(StudentController.class);

看看编译后的class文件:

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值