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()。