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" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd" default-init-method="defautInit" default-destroy-method="defaultDestroy"> <bean id="beanLifeCycle" class="com.imooc.lifecycle.BeanLifeCycle" init-method="start" destroy-method="stop"></bean> </beans>
init-method
会在spring容器加载bean的时候,调用该方法进行初始化操作。
当IoC容器销毁的时候,会调用destroy-method
对应的stop方法。
default-init-method
和default-destroy-method
为全局的初始化和销毁方法。
初始化XML配置文件的方法,bean中
package com.imooc.lifecycle; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; public class BeanLifeCycle implements InitializingBean, DisposableBean { public void start() { System.out.println("Bean start ."); } public void stop() { System.out.println("Bean stop."); } }
初始化,实现了两个接口,并覆盖了他们两个方法
package com.imooc.lifecycle; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; public class BeanLifeCycle implements InitializingBean, DisposableBean { @Override public void destroy() throws Exception { System.out.println("Bean destroy."); } @Override public void afterPropertiesSet() throws Exception { System.out.println("Bean afterPropertiesSet."); } }
使用默认的初始化和销毁方法
package com.imooc.lifecycle; import org.springframework.beans.factory.DisposableBean; import org.springframework.beans.factory.InitializingBean; public class BeanLifeCycle implements InitializingBean, DisposableBean { public void defautInit() { System.out.println("Bean defautInit."); } public void defaultDestroy() { System.out.println("Bean defaultDestroy."); } }
同时使用三种方式的时候,会忽略默认,接口先于自己配置的方法。
即使配置了全局的默认初始化和销毁方法,也可以不实现这样的方法。