@Slf4j 和 @Data 标签的使用

454 阅读1分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

@Slf4j 是用作日志输出的,一般会在项目每个类的开头加入该注解,可以简化代码。

一、使用 @Slf4j 标签,idea 首先需要安装 lombok 插件。

在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 安装完毕后需要重启 idea。

二、在 pom.xml 文件加入lombok的依赖

        <dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
			<version>1.18.6</version>
		</dependency>

三、类上面添加 @Slf4j 注解,然后使用log打印日志

package com.test.controller;

import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;

import javax.servlet.http.HttpServletRequest;

//import org.slf4j.Logger;
//import org.slf4j.LoggerFactory;

/**
 * @description
 * @date 2019/12/17 16:01
 */
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {
//    private static Logger logger = LoggerFactory.getLogger(TestController.class);

    @RequestMapping(value = "/testLog", method = RequestMethod.GET)
    public String testLog(HttpServletRequest request) {

        log.info("名字:{}", request.getParameter("name"));

        return "HelloWorld";
    }
}

使用 @Slf4j 可取代上述代码块中注释掉的部分,可以在代码中直接使用 log.info( ) 打印日志,简化了代码。


Java 类上面添加 @Data,可以省去 setter 与 getter、toString 方法的书写,在编译时,会自动添加到class中。 idea 安装 lombok 插件,步骤见 @Slf4j 标签的使用

Java 类如下:

package com.test.entity;

import lombok.Data;

/**
 * @description
 * @date 2019/12/17 17:24
 */
@Data
public class Student {

    private String studentId;

    private String studentName;
}

测试代码如下:

package com.test.controller;

import com.alibaba.fastjson.JSON;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.RestController;
import com.test.entity.Student;

/**
 * @description
 * @date 2019/12/17 16:01
 */
@RestController
@RequestMapping("/test")
@Slf4j
public class TestController {

    @RequestMapping(value = "/testData", method = RequestMethod.GET)
    public String testData() {
        Student student = new Student();
        student.setStudentId("12345");
        student.setStudentName("张三");

        log.info("学生信息:[{}]", JSON.toJSONString(student));
        log.info("学生姓名:[{}]", student.getStudentName());
        return "HelloWorld";
    }
}

测试时,后端输出:

学生信息:[{"studentId":"12345","studentName":"张三"}]
学生姓名:[张三]