spring中使用@PostConstruct和@PreConstruct注解


1.@PostConstruct說明

     被@PostConstruct修飾的方法會在服務器加載Servlet的時候運行,並且只會被服務器調用一次,類似於Serclet的inti()方法。被@PostConstruct修飾的方法會在構造函數之后,init()方法之前運行。

2.@PreDestroy說明

     被@PreDestroy修飾的方法會在服務器卸載Servlet的時候運行,並且只會被服務器調用一次,類似於Servlet的destroy()方法。被@PreDestroy修飾的方法會在destroy()方法之后運行,在Servlet被徹底卸載之前。(詳見下面的程序實踐)

package com.yygx.flowinterface.service.impl;

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

import net.zoneland.uniflow.client.impl.SyncProcessServiceClient;
import net.zoneland.uniflow.client.impl.SyncTaskServiceClient;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Repository;

/**
 * 
 * 流程引擎客戶端工具類
 * @author wuhda
 *
 */
@Repository
public class FlowClientUtil {

	private final static Logger LOGGER = LoggerFactory.getLogger(FlowClientUtil.class);

	
	/**
	 * 流程類接口客戶端
	 */
	private SyncProcessServiceClient processClient;
	
	/**
	 * 任務類接口客戶端
	 */
	private SyncTaskServiceClient taskClient;
	
	
	@PostConstruct
	public void init() {
		// 接入系統的賬號密碼,在流程管理平台(UniflowAdminConsole)上配置
		String username = "ehr";
		String password = "password";
		
		// Uniflow的服務地址
		String endpoint = "http://172.16.92.50:10081/UniflowControlCenter/rest";
		
		// 構建流程類接口客戶端
		processClient = new SyncProcessServiceClient(username, password);
		processClient.setServerAddress( endpoint + "/RestProcessService" );
		
		// 構建任務類接口客戶端
		taskClient = new SyncTaskServiceClient(username, password);
		taskClient.setServerAddress( endpoint + "/RestTaskService" );
	}



	@PreDestroy
	public void close() {
		System.out.println("close client ...");
		// 應用結束是最好關閉客戶端(內部有HttpClient的連接池)
		processClient.close();
		taskClient.close();
	}
	
	public SyncProcessServiceClient getProcessClient() {
		return processClient;
	}


	public void setProcessClient(SyncProcessServiceClient processClient) {
		this.processClient = processClient;
	}


	public SyncTaskServiceClient getTaskClient() {
		return taskClient;
	}


	public void setTaskClient(SyncTaskServiceClient taskClient) {
		this.taskClient = taskClient;
	}
	
}

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM