为了定义安装和拆卸一个 bean,我们只要声明带有 init-method 和/或 destroy-method 参数的 。
    init-method 属性指定一个方法,在实例化 bean 时,立即调用该方法。同样,destroy-method 指定一个方法,只有从容器中移除 bean 之后,才能调用该方法。
    Bean的生命周期可以表达为:Bean的定义——Bean的初始化——Bean的使用——Bean的销毁
    案例代码:
    Person.java

    1. package com.baklib.custom;
    2. public class Person {
    3. private String name;
    4. private String carType;
    5. public String getName() {
    6. return name;
    7. }
    8. public void setName(String name) {
    9. this.name = name;
    10. }
    11. public String getCarType() {
    12. return carType;
    13. }
    14. public void setCarType(String carType) {
    15. this.carType = carType;
    16. }
    17. public void buyCar(){
    18. System.out.println(this.getName()+"购买了"+this.getCarType()+"!");
    19. }
    20. // Bean 的初始化方法
    21. public void init(){
    22. System.out.println("进入4S店");
    23. }
    24. // Bean 的销毁方法
    25. public void destory(){
    26. System.out.println("离开4S店");
    27. }
    28. }

    MainApp.java

    1. package com.baklib.custom;
    2. import org.springframework.context.support.AbstractApplicationContext;
    3. import org.springframework.context.support.ClassPathXmlApplicationContext;
    4. public class MainApp {
    5. public static void main(String[] args) {
    6. AbstractApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml");
    7. Person person = (Person) context.getBean("person");
    8. person.buyCar();
    9. context.registerShutdownHook();
    10. }
    11. }

    配置文件 Beans.java

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    5. <bean id="person" class="com.baklib.custom.Person" init-method="init" destroy-method="destory">
    6. <property name="name" value="张三" />
    7. <property name="carType" value="小轿车" />
    8. </bean>
    9. </beans>

    编写完以上代码,就可以运行这个程序,运行结束后,可以在控制台看到下面的信息

    1. 进入4S
    2. 张三购买了小轿车!
    3. 离开4S

    默认的初始化和销毁方法
    当有多个具有相同名称的初始化或者销毁方法的 Bean,不需要在每一个 bean 上声明初始化方法和销毁方法
    框架使用 元素中的 default-init-method 和 default-destroy-method 属性

    1. <?xml version="1.0" encoding="UTF-8"?>
    2. <beans xmlns="http://www.springframework.org/schema/beans"
    3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
    5. default-init-method="init"
    6. default-destroy-method="destroy">
    7. <bean name="..." class="...">
    8. ...
    9. </bean>
    10. <bean name="..." class="...">
    11. ...
    12. </bean>
    13. <bean name="..." class="...">
    14. ...
    15. </bean>
    16. </beans>