Spring還使用基於 JSR-250 註釋,它包括 @PostConstruct, @PreDestroy 和 @Resource 註釋。
# @PostConstruct 和 @PreDestroy 註釋為了定義一個 bean 的安裝和卸載,我們使用 init-method 和/或 destroy-method 參數簡單的聲明一下 。init-method 屬性指定了一個方法,該方法在 bean 的實例化階段會立即被調用。同樣地,destroy-method 指定了一個方法,該方法只在一個 bean 從容器中刪除之前被調用。
你可以使用 @PostConstruct 註釋作為初始化回調函數的一個替代,@PreDestroy 註釋作為銷燬回調函數的一個替代,看一個具體的例子來學習。
HelloWorld:
package com.sap;import javax.annotation.*;publicclassHelloWorld{private String message;publicvoidsetMessage(String message){this.message = message; }public String getMessage(){ System.out.println("Your Message : " + message);return message; }@PostConstructpublicvoidinit(){ System.out.println("Bean is going through init."); }@PreDestroypublicvoiddestroy(){ System.out.println("Bean will destroy now."); }}
在Main.app裏註冊一個關閉鈎 registerShutdownHook() 方法,該方法在 AbstractApplicationContext 類中被聲明。
import org.springframework.context.support.AbstractApplicationContext;import org.springframework.context.support.ClassPathXmlApplicationContext;publicclassMainApp {publicstaticvoidmain(String[] args){ AbstractApplicationContext context = new ClassPathXmlApplicationContext("Beans.xml"); HelloWorld obj = (HelloWorld) context.getBean("helloWorld"); obj.getMessage(); context.registerShutdownHook(); }}
Beans.xml:
<beansxmlns="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-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd"><context:annotation-config/><beanid="helloWorld"class="com.sap.HelloWorld"init-method="init"destroy-method="destroy"><propertyname="message"value="Hello World!"/>bean>beans>
輸出:
【來源:汪子熙的游泳故事】
聲明:轉載此文是出於傳遞更多信息之目的。若有來源標註錯誤或侵犯了您的合法權益,請作者持權屬證明與本網聯繫,我們將及時更正、刪除,謝謝。 郵箱地址:[email protected]