Spring的Bean:Bean的生命周期(包括实践)

发布于:2025-02-10 ⋅ 阅读:(31) ⋅ 点赞:(0)

目录

生命周期

观察生命周期的方式

 生命周期实践(含代码)


生命周期

什么是生命周期?

答:从创建到消亡的整个过程就是生命周期。

观察生命周期的方式

在创建前,做一些事情;在结束前,做一些事情。在Bean的配置文件中绑定初始化方法和销毁方法。

 销毁方法需要注意的点:在JVM退出的时候,没有关闭IoC容器,就不会执行销毁方法;这个时候需要告诉JVM关闭IoC容器

关闭IoC容器的方法有两种:

1. close方法暴力关闭

2. 设置IoC容器关闭钩子,提醒JVM关闭IoC容器

 生命周期实践(含代码)

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="cat" class="org.example.package2.Cat" init-method="init" destroy-method="destory"/>
    <bean id="dog" class="org.example.package2.Dog"/>
    <bean id="animalSet" name="abc1234" class="org.example.AnimalSet">
        <property name="animal1" ref="cat"></property>
        <property name="animal2" ref="cat"></property>
    </bean>
</beans>
package org.example;

import org.example.package2.Cat;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class LifeBean {
    public static void main(String[] args) {
        ClassPathXmlApplicationContext ctx = new ClassPathXmlApplicationContext("applicationConfig.xml");
        Cat cat = (Cat) ctx.getBean("cat");
        cat.sound();
        ctx.close();
    }
}
package org.example.package2;
import org.example.package1.Animal;

public class Cat implements Animal{

    public Cat() {
        System.out.println("Cat Constructor.....");
    }

    @Override
    public void sound(){
        System.out.println("cat sound");
    }
    public void init(){
        System.out.println("cat init Method.....");
    }
    public void destory(){
        System.out.println("cat destory Method.....");
    }
}
package org.example.package1;

public interface Animal {
    void sound();
}


网站公告

今日签到

点亮在社区的每一天
去签到