在controller层,方法使用private修饰,导致注入的service在该方法中无法使用(null)的问题。
-
首先明晰该问题的根源所在。
java中的反射机制,获取不到private方法。
-
spring boot 中的默认包扫描机制。
spring boot启动时,会自动扫描引导类所在包及其子包下的所有文件。此时被
@RestController
注解的controller类,被注入到了spring容器中。问题来了,为什么被
@RestController
注解的类会注入到容器中呢?我们都知道实际上
@RestController
的作用相当于@ResponseBody
+@Controller
两个注解。我们点进@RestController
后,直接进入到@Controller
注解中查看。@Target({ ElementType.TYPE}) @Retention