提出问题
在之前的例子中,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();
SpringBoot通过扫描带有@Controller注解的类,并使用反射调用无参构造方法来实例化对象。在启动时,它会打印出构造方法的执行,例如在HelloCtrl类中的构造方法。这种机制允许开发者直接使用Controller类而无需手动创建实例。
980

被折叠的 条评论
为什么被折叠?



