@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文件: