国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Spring(3.2.3)

2019-11-15 00:13:12
字體:
來源:轉載
供稿:網友
SPRing(3.2.3) - Beans(10): 生命周期

Spring 容器可以管理 singleton 作用域 Bean 的生命周期,容器能夠跟蹤 Bean 實例的創建、銷毀。管理 Bean 生命周期行為主要有兩個時機:  注入 Bean 的依賴關系之后  即將銷毀 Bean 之間

依賴關系注入之后的行為

有三種方式可以在 Bean 的所有屬性設置成功后執行特定的行為:  實現 org.springframework.beans.factory.InitializingBean 接口  使用 init-method 屬性  使用 @PostConstruct 注解

實現 InitializingBean 接口的示例

Bean 的定義:

public class ExampleBean implements InitializingBean {        private String field1;    private String field2;        public void setField1(String field1) {        this.field1 = field1;        System.out.println("field1 was set.");    }        public void setField2(String field2) {        this.field1 = field2;        System.out.println("field2 was set.");    }        public ExampleBean() {        System.out.println("In ExampleBean Constructor.");    }    public void afterPropertiesSet() throws Exception {        System.out.println("All properties were set.");    }    }

Spring 配置:

<bean id="eb" class="com.huey.dream.bean.ExampleBean">    <property name="field1" value=""/>    <property name="field2" value=""/></bean>

測試方法:

@Testpublic void testLifecycle() throws Exception {    applicationContext appCtx =           new ClassPathxmlApplicationContext("applicationContext.xml");}

結果輸出:

In ExampleBean Constructor.field1 was set.field2 was set.All properties were set.
使用 init-method 屬性的示例

Bean 的定義:

public class ExampleBean  {        private String field1;    private String field2;        public void setField1(String field1) {        this.field1 = field1;        System.out.println("field1 was set.");    }        public void setField2(String field2) {        this.field1 = field2;        System.out.println("field2 was set.");    }        public ExampleBean() {        System.out.println("In ExampleBean Constructor.");    }    public void init() throws Exception {        System.out.println("In init method.");    }    }

Spring 配置:

<bean id="eb" class="com.huey.dream.bean.ExampleBean" init-method="init">    <property name="field1" value=""/>    <property name="field2" value=""/></bean>
使用 @PostConstruct 注解

Bean 的定義:

public class ExampleBean  {        private String field1;    private String field2;        public void setField1(String field1) {        this.field1 = field1;        System.out.println("field1 was set.");    }        public void setField2(String field2) {        this.field1 = field2;        System.out.println("field2 was set.");    }        public ExampleBean() {        System.out.println("In ExampleBean Constructor.");    }        @PostConstruct    public void init() throws Exception {        System.out.println("In init method.");    }    }

Spring 配置:

<bean id="eb" class="com.huey.dream.bean.ExampleBean">    <property name="field1" value=""/>    <property name="field2" value=""/></bean>

Bean 銷毀之前的行為

與定制初始化行為類似,也有三種方式可以在 Bean 實例銷毀前執行特定的行為:  實現 org.springframework.beans.factory.DisposableBean 接口  使用 destroy-method 屬性  使用 @PreDestroy 注解


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 云安县| 衡东县| 黄骅市| 东山县| 宣城市| 中牟县| 临沂市| 故城县| 梁平县| 顺平县| 桂平市| 洪洞县| 宿松县| 秭归县| 孟连| 福贡县| 台东县| 平湖市| 大城县| 博罗县| 襄汾县| 潜江市| 淮滨县| 淳安县| 乌苏市| 合山市| 闻喜县| 瑞金市| 江山市| 东兰县| 莆田市| 福清市| 灵丘县| 师宗县| 三亚市| 伊川县| 井冈山市| 黄平县| 偏关县| 大城县| 航空|