测试spring bean的生命周期

package com.shizhan.ps.impl;



import java.util.Map;

import javax.annotation.PostConstruct;
import javax.annotation.PreDestroy;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

import com.shizhan.ps.PersonService;

public class PersonServiceImpl implements PersonService,InitializingBean, DisposableBean {
  
	private Map<String, String> map;

	public PersonServiceImpl()
	{
		System.out.println("构造函数被调用");
	}
    @Override
	public void service()
    {
    	System.out.println("first spring");
    }
    
    //定义初始化方法
    public void init()
    {
    	System.out.println("初始化方法被调用");
    }
    
    //定义destroy方法
    public void destroy()
    {
    	System.out.println("销毁方法被调用");
    }
    
	@Override
	public void afterPropertiesSet() throws Exception {
		System.out.println("afterPropertiesSet方法被调用");
		
	}
	
	@PostConstruct
    public void init2() {
        System.out.println("@PostConstruct被调用" );
    }

    @PreDestroy
    public void dispose2() {
        System.out.println("@PreDestroy被调用");
    }
    
    public void setMap(Map<String, String> map) {
        this.map = map;
    }
}
<?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">
	<context:annotation-config/>
	<!-- 使用类的默认构造函数创建bean -->
	<bean id="PersonService1" class="com.shizhan.ps.impl.PersonServiceImpl" init-method="init"
	destroy-method="destroy">
	    <property name="map">
            <map>
                <entry key="hello" value="world"></entry>
                <entry key="love" value="you"></entry>
            </map>
        </property>
	
	</bean>
	


	
</beans>

执行结果:

构造函数被调用
@PostConstruct被调用
afterPropertiesSet方法被调用
初始化方法被调用
first spring
@PreDestroy被调用
销毁方法被调用



你可能感兴趣的:(测试spring bean的生命周期)