1. 程式人生 > >Spring極簡學習(二)給Bean加些小動作

Spring極簡學習(二)給Bean加些小動作

上一篇文章已經講過了Spring是如何把自己注入到Web應用中的,並且通過配置檔案的讀取開始Bean的例項化之路。

1、例項化後、銷燬前

當然除了對常規的Bean的例項化之外,往往會產生一些特別的要求,例如在bean例項化後要做一個什麼動作,比如起一個執行緒服務。或者在bean銷燬之前進行一個記錄日誌的動作。這些固定的操作Spring都進行了標準化的配置封裝。

2、xml檔案配置

個人認為xml檔案的表達方式更容易理解,註解和介面實現方式都會將動作藏在在程式碼中,讓使用者容易找不到。所以先看xml的配置實現。

	<bean id="FileServer" class="org.lyx.file.server.FileServer"
	init-method="init"></bean>

上述配置就表示在FileServer這個類例項化後,就執行它的init方法。
看一個例項

   <bean id="personService" class="*.PersonService"
    scope="singleton"  
   init-method="init"  destroy-method="cleanUp">
   </bean>

程式碼

package*.beanscope;

public class PersonService  {
   private String  message;
 
	public String getMessage() {
		return message;
	}
	
	public void setMessage(String message) {
		this.message = message;
	}
  
	public void init(){
		System.out.println("init");
	}

	public void  cleanUp(){
		System.out.println("cleanUp");
	}
}

例項化後執行init()方法,例項銷燬前執行cleanup()方法。

3、其他配置方式

1、採用在方法上添加註解
實現初始化後:@PostConstruct
銷燬bean之前:@PreDestroy

2、實現介面
實現初始化後:InitializingBean
銷燬bean之前:DisposableBean

參考:
Spring 的 init-method 和 destory-method