Spring中bean初始化时机初始化方法和销毁方法

Spring只Bean加载机制默认情况下是初始化容器的时候就会直接初始化,但是也取决于是否使用了懒加载,如果使用到懒加载bean只会在实例化的时候才会加载,容器初始化时候则不加载。这样做不能使bean直接在容器初始化的时候暴露问题,而是在运行期才能暴露问题,所以要慎用懒加载,只有使用一些特定的功能的时候使用较好。同时可以配置初始化方法和销毁方法。
Example:
bean.xml配置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:context="http://www.springframework.org/schema/context" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd">
                <bean id="personService" class="com.heying.service.PersonServiceBean" lazy-init="default" init-method="init" destroy-method="destory"></bean>
                <!-- <context:component-scan base-package="com.heying"/> -->
</beans>
public class PersonServiceBean implements PersonService{
    public PersonServiceBean() {}

    public void init(){
        System.out.println("i am first of all !");
    }

    public void destory(){
        System.out.println("i am last of all !");
    }

    public void save() {
        System.out.println("我是save方法"); 
    }
}
main{
    AbstractApplicationContext applicationContext = new ClassPathXmlApplicationContext("beans.xml");
    PersonService personService = (PersonService) applicationContext.getBean("personService");
    System.out.println(personService.getClass());
    applicationContext.close();
}

可以定义加载bean时候的初始化和销毁方法,容器回收的时候会自动调用destory()。

你可能感兴趣的:(bean,init方法,加载时机,destory方法)