提出问题
在之前的例子中,Controller类都是可以直接使用的,我们并没有手动创建该类的对象
那么 springboot 框架是如何创建 Controller 对象的?
默认构造方法
springboot框架,通过 默认构造方法(无参构造方法)创建对象
这是 springboot 默认创建对象的方式
例子
创建下面Controller
@Controller
public class HelloCtrl {
public HelloCtrl(){
System.out.println("HelloCtrl()构造方法");
}
@RequestMapping("/hello")
public String hello(@RequestParam("u_name") String username){
return "hi.html";
}
}
运行 springboot 主启动类,会打印下面内容:
HelloCtrl()构造方法
启动springboot时,会扫描类的注解,当扫描到 @Controller
时,会通过 反射方式,调用 无参构造方法 进行 实例化
底层实现
Object obj=Class.forName("top.malaoshi.controller.HelloCtrl").newInstance();