2016年4月

SpringIOC容器可以管理Bean生命周期,Spring允许在Bean生命周期的特定点执行定制的任务。

SpringIOC容器对Bean的生命周期进行管理的过程:

  1. 通过构造器或工厂方法创建Bean实例
  2. 为Bean的属性设置值和对其他Bean的引用
  3. (初始化前:可以将Bean实例传递给Bean后置处理器postProcessBeforeInitialization)
  4. 调用Bean的初始化方法
  5. (初始化后:可以将Bean实例传递给Bean后置处理器postProcessAfterInitialization)
  6. Bean 可以使用了
  7. 当容器关闭时,调用Bean的销毁方法

在Bean的声明里设置init-method 和 destroy-method属性,为Bean指定初始化和销毁方法

- 阅读剩余部分 -

使用spel为属性赋一个字面值

    <bean id="address" class="com.dxh.spring.bean.spel.Address">
        <property name="city" value="#{'BeiJing'}"></property>
        <property name="street" value="WuDaoKou"></property>
    </bean>

使用SPEL 引用类的静态属性

使用T()调用一个类的静态方法

<bean id="car" class="com.dxh.spring.bean.spel.Car">
        <property name="brand" value="Audi"></property>
        <property name="price" value="500000"></property>
        <property name="tyrePerimeter" value="#{T(java.lang.Math).PI * 80}"></property>
</bean>

使用SpEL 来引用其他的Bean、引用其他的Bean的属性、SpEL 运算符

    <bean id="person" class="com.dxh.spring.bean.spel.Person">
        <property name="name" value="WangTian"></property>

        <!-- 使用SpEL 来引用其他的Bean-->
        <property name="car" value="#{car}"></property>
        <!-- 使用SpEL 来引用其他的Bean的属性-->
        <property name="city" value="#{address.city}"></property>
        <!-- 使用SpEL 运算符-->
        <property name="info" value="#{car.price > 300000 ? '金领':'白领'}"></property>
    </bean>