一.我的项目启动过程剖析:

SpringBoot我的项目在启动时,首先基于启动入口类上的注解形容,进行主动配置并扫描指定包以及子包中的类进行加载,而后检测类上是否有Spring框架中指定的注解形容,有的话,则将类交给Spring框架中的BeanFactroy工厂接口的实现类对象,此工厂对象会基于反射创立Bean的实例,如果指定了生命周期办法,还会调用生命周期办法,当实例创立了当前,Spring框架还会基于类的作用域形容,将实例存储到不同作用域的容器中.

二.Spring框架中的注解:

@SpringBootApplication注解形容的类为我的项目的启动入口@Component是Spring中用于形容Bean类的一个注解。@SpringBootTest 注解用于通知spring框架,此测试类交给spring治理。@Autowired注解形容属性时,用于通知spring框架要为此属性注入一个值.@Lazy注解用于形容类,其目标是通知spring框架此类反对提早加载,通常会配合单例作用域应用,

默认是true。

@Scope 是Spring中用于定义Bean对象作用域的一个注解,其罕用的值有

singleton(整个内存有一份Bean实例,此实例何时创立与类的提早加载个性配置无关,此实例创立当前,生命周期会由spring框架治理),prototype(每次获取都会创立新实例,此实例会在须要时创立与lazy个性无关,这个实例创立当前,不会交给spring治理,spring能够对其初始化,但不负责销毁。)等。

@PostConstruct 注解用于形容bean对象生命周期办法中的初始化办法,此办法会在对象的构造方法之后执行(是对象创立当前的初始化)。@PreDestroy 注解用于形容Bean对象生命周期办法中的销毁办法,此办法会在对象销毁之前执行(当作用域为prototype时,此办法不会执行)。

三.Spring框架治理Bean对象的劣势:

Spring框架能够为由它治理的对象(Bean)提供懒加载策略(@Lazy),作用域(@Scope),生命周期办法(@PostConstruct,@PreDestroy),以实现对象对系统的无效应用,同时,Spring框架还能够基于对象和对象之间的依赖关系,升高对象和对象之间的耦合性,进步程序的可维护性和可扩展性.