SpringBoot 项目启动时,首先基于启动入口类上的注解描述,进行自动配置并扫描指定包以及子包中的类进行加载,然后检测类上是否有spring框架中指定的注解描述
(例如@Conmonent,@Controller,@Service等)
假如有则将类交给Spring框架中的BeanFactory工厂接口的实现类对象,此工厂对象会基于反射创建Bean的实例,假如此Bean指定了生命周期方法,还会调用生命周期方法。当实例创建以后,spring框架还会基于类的作用域描述,将实例存储到不同作用域的容器中。以实现Bean对象的科学应用。
启动类注解:@SpringBootApplication
后面创建的各种包路径的前缀需要和此注解所在的包路径一致
例如启动类所在的包为:com.cy
后面创建的包路径为:com.cy.xx.xxx
@Component:是Spring中用于描述Bean类的注解,用于告诉Spring这个类的实例由Spring创建,默认将对象存储到Bean池中
@SpringBootTest:告诉spring框架,此测试类交给spring管理
@Autowired:描述属性时,告诉spring框架要为此属性注入一个值
@Qualifier:对其属性或参数进行描述(配合@Autowired使用)
@Lazy:用于描述类,告诉spring框架此类支持延迟加载,通常配合单例作用域使用
@Scope:定义Bean对象作用域的注解,常用的值有:
singleton(单例作用域):整个内存有一份Bean实例,此实例何时创建与类的延迟加载特性配置有关,此实例创建后,生命周期会由spring框架管理
prototype(多例作用域):每次获取都会创建新实例,与lazy特性无关,此实例创建后,不交给spring管理,spring可以对其初始化,不负责销毁
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。