当前位置: 首页 > 网络应用技术

春豆的范围和生命周期

时间:2023-03-06 12:43:22 网络应用技术

  当通过XML配置IOC容器时,标签的属性可以指定BEAN的范围,如下所示。如果您未指定属性,默认值,即单个case范围。

  属性值具有以下5个选项,也就是说,有5种类型的弹簧bean。

  在开发过程中,建议使用BEAN的状态,建议使用它。

  使用时会创建“懒惰”,以便在初始化类时可以预先避免类。产生的,不能保证独特性。

  如何注入原型豆,有两种方法

  注射时不能使用多示例模式(),否则它仍然是单打模式。要进行多种模式()注入,您可以通过该方法获得bean或获得bean。

  让我们看一下什么是豆。

  仅仅是您应用程序中的许多对象之一。豆子和其中的依赖项反映在配置元数据用户中。

  在春季,应用程序的主要应用程序以及Spring IOC容器的对象管理称为“ bean”。“ bean”是实例,弹簧IOC容器的汇编和管理对象。

  也就是说,Spring Bean的生命周期由IOC容器完全控制。应该指出的是,Spring只能帮助我们管理单个示例的完整生命周期。对于Bean,Spring将不再管理向用户创建后的后续生命周期。

  创建单身豆后,将其放置在IOC容器的高速缓存池中,并触发Spring的生命周期管理。

  Spring Bean的生命周期可以简单地分为(请参阅以下功能)

  Bean自己的方法(功能)将Bean的生命周期划分为例如,属性分配,初始化和破坏这四个阶段。但是Spring扩大了Bean的生命周期,精致的生命周期过程如下。

  属性分配(人口)

  初始化(初始化)

  破坏

  初始化过程的膨胀点和上述初始化方法,初始化过程的扩展点包括(参考以下功能)

  初始化过程后的豆生命周期过程如下图所示。

  破坏过程的扩展点和上述销毁方法,被破坏过程的膨胀点包括(参考以下功能)

  在上面的分析的基础上,编写示例代码以打印Bean生命周期中每种方法的执行顺序。在XML中创建了一个新的接口,,,,,,,构造和方法。

  如上所述,初始化过程的扩展点包括

  在项目中,经常在启动容器时执行特定的初始化操作,例如资源文件的加载。通用方式包括(还可以使用相关接口)

  1.使用Spring的@PostConstruct注释,指示此方法在Spring实例化此方法后立即执行,然后将其实例化为其他Bean,并且一个Bean中有多种方法。

  以下结合了一个特定示例来解释。

  从操作的结果可以看出,在实例化bean1(执行BEAN1的结构函数之后)后,Spring立即执行其注释方法,然后实例化了Bean3.在它们中,Bean2不受Spring IOC容器的管理。

  @postConstruct

  加载服务器时,修改方法将运行,仅服务器一次调用一次。类似的方法。修改后的方法将在构造函数之前运行。

  当服务器卸载时,修改方法将运行,并且仅由服务器调用一次,类似于该方法。修改后的方法将在服务器完全卸载之前执行。

  constructionor, @autowired和@postConstructs可以从依赖注入的字面意义中知道。要将对象p注入对象A中,然后您必须首先生成对象A和对象P进行注射。因此,如果A类A类中有成员变量P,则在执行A的构造函数后发生注射。

  如果要在生成对象时完成某些初始化操作,并且这些初始化操作取决于依赖的注入,则不能在构造函数中实现。出于此原因,可以使用注释方法来完成初始化。依赖注入完成后,将自动调用注释方法。

  执行令是

  结合以下代码,加深对三种方法的执行顺序的理解。

  2.实现初始化接口的类的源代码如下,其中包含一种方法。

  3.在配置文件中

  以上三种方法的实现顺序引入了三种方法,以执行初始化bean时执行特定的初始化操作。

  执行结果如下

  可以看出,首先执行注释的方法,然后实现接口的方法,最后执行在配置文件中配置的方法。执行顺序为

  至于原因,您可以看到源代码。

  从上面的源代码可以看出,实现接口是一种直接调用方法,它比反射呼叫相对较高,比指定方法的效率相对较高。但是该方法消除了对弹簧的依赖。

  上一章中的实际战斗应用程序“在初始化bean时执行特定的初始化操作”是开放的 - 通过实现接口进行的 - 世界操作以执行特定的初始化操作。在实际业务开发中,它可以执行监视和降级配置等操作通过此界面。

  看看一个例子。

  原始:https://juejin.cn/post/7099649788500508685