如何在静态方法/main方法中调用Controller
前言
根据功能需求,一般Controller层是用来处理外部请求的,最常见的就是@RequestMapping("../..")这样的书写,但是有时会遇到不通过外部,而由自己手动发起去调用这个控制层去发起某个操作,就是在main方法中调用调用 Controller。
静态方法的问题
main方法在一个类中属于一个静态方法,所以不难想到,要在这个main方法里使用Controller,就必须将这个Controller也声明为静态的,
@SpringBootApplication
@MapperScan("com.test.mapper")
public class DemoApplication {
@Autowired
private static MyController myController;
public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
myController.test();
}
这样看上去似乎没有任何问题,我一开始也是这么想的,但是运行之后,就会出现空指针异常!
即使加了 static ,此时自动装配的myController仍然是空的&