虽然知道Springboot有一些自动装配的机制,但是理论上来说这个应该连编译都过不了才对。想问问它底层是怎么实现的?是用什么方式动态注入?

虽然知道Springboot有一些自动装配的机制,但是理论上来说这个应该连编译都过不了才对。想问问它底层是怎么实现的?是用什么方式动态注入?

其实这个注解只是 Lombok 众多注解中的一个注解。lombok 是在编译期直接修改你的代码,也就是说例如你加了 @Slf4j 那么,在编译的时候 lombok 会往你的代码里面加上一行代码
private static final Logger log = LoggerFactory.getLogger(XXXX.class);
如果你用的是 IDEA 的话,你可以直接查看 class 文件,你可以发现 @Slf4j 已经不见了,多了一行代码。