bean的生命周期
bean的定义
使用xml定义,不多介绍。
bean的初始化
使用init-method属性完成
1. 创建class,实现init方法。
package com.myspring.helloworld;
public class HelloInit implements HelloApi{
private String message;
public HelloInit(){
this.message = "Hello Init Constructor";
}
public void init(){
this.message = "Hello Init";
}
public void setMessage(String message){
this.message = message;
}
public String getMessage(){
return this.message;
}
@Override
public void sayHelo() {
System.out.println(message);
}
}
2. 实现配置文件:
<?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-3.0.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd">
<!-- id 表示你这个组件的名字,class表示组件类-->
<!-- 使用init-method实现初始化-->
<bean name="init" class="com.myspring.helloworld.HelloInit" init-method = "init"> </bean>
</beans>
实现InitializingiBean接口
使HelloInit实现InitializingiBean接口,实现afterPropertiesSet方法,类似Init方法。
配置文件中去除init-method标签即可。
问题: 这样修改值得时候还是需要修改代码,有什么意义??
bean的使用
三种方式: BeanWrapper ?? / BeanFactory / ApplicationContext
bean的销毁
与init类似,使用destory-method标签设置
或实现DisposableBean接口。
init和destroy 推荐使用第一种方式,不与Spring耦合。