springboot教程-IOC Controller的创建方式

提出问题

在之前的例子中,Controller 类都是可以直接使用的,我们并没有手动创建该类的对象

那么 springboot 框架是如何创建 Controller 对象的?

默认构造方法

启动 springboot 时,会扫描类的注解,当扫描到 @Controller 时,会通过 反射方式,调用 默认构造方法(无参构造方法) 进行 实例化

这是 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()构造方法

底层实现

相当于执行下面代码

Object obj=Class.forName("top.malaoshi.controller.HelloCtrl").newInstance();

原文出处:/show_1IXiqxqWiOl.html