我们在创建springboot项目时 总会看到这么一个启动类
首先 我们要知道 我们的程序最后就成立一个spring容器 而你所有的类都是交给这个spring容器去管理的
做 springboot 程序 也会有这个spring容器
为了方便大家看 我们将启动类的代码改成这样
package com.example.threshold;
import com.example.threshold.controller.BookController;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ConfigurableApplicationContext;
@SpringBootApplication
public class ThresholdApplication {
public static void main(String[] args) {
ConfigurableApplicationContext ctx = SpringApplication.run(ThresholdApplication.class, args);
BookController bean = ctx.getBean(BookController.class);
System.out.println("beanmmmmmm>"+bean);
}
}
这里 我们通过ConfigurableApplicationContext接口作为类型 取值了燕来启动类的方法 学过spring的都知道 这个接口就是接收一个容器的
然后 我们用赋值的容器 获取了bean对象
我这里这个类就声明了一个对象在我们系统的bean管理中 然后 我们这里 就通过启动类获取到的spring来在bean对象中 取到BookController对象并输出
运行结果如下
这里 就可以看到 类对象 被输出了
说明 他这里是一个spring容器 里面是我们声明的所有bean对象
第二个值得注意的地方是他的注解
我们点进去看一下
可以卡看到 这下面又是别有洞天 我们相信比较有见解的伙伴第一眼就会看上这个 SpringBootConfiguration 那么 我们点进去
当我们看到这个注解时 就已经看好了 哦 这就是个配置类
ComponentScan则会扫描 bean
但这里要科普一下 他的扫描仅与当前目录 和当前目录下的目录
如果你把bean类放在了他的包外面
那启动类就找不到了
简单说 启动类又叫引导类 他是程序的入口 他会扫描所有的bean