zoukankan      html  css  js  c++  java
  • Spring关于Bean

    spring创建bean的三种方式:调用构造器,调用静态工厂方法,调用实例工厂方法

     
    静态工厂方法:
    <bean id="dog" class="静态工厂类"
    factory-method="静态工厂类里面的方法">  
    <!-- 配置静态工厂方法的参数 -->
    <constructor-arg value="一个参数,如果相同于静态工厂类里面的方法的参数,就返回该参数类的方法"/>
    <!-- 驱动Spring以"我是狗"为参数来执行dog的setMsg()方法 -->
    <property name="msg" value="我是狗"/>
    </bean>
     
    实例工厂方法:
    <bean id="chinese" factory-bean="工厂Bean名字"
    factory-method="工厂Bean里面的方法名">
    <!-- 配置实例工厂方法的参数 -->
    <constructor-arg value="chin"/>
    </bean>
     
    抽象bean不能被实例化。抽象bean的价值在做父bean被继承,配置设置成abstract="true"
     
    spring里bean继承与java继承区别:前者是对象与对象之间的关系,后者是类与类之间的关系;前者可以是不同类型,后者子类可看做一个特殊的父类;前者子bean不能作父bean使用,后者子类可以完全当作父类实例使用。
     
    Spring中bean容器的生命周期
    注入依赖关系之后的行为有:使用init-method属性、实现InitializingBean接口
    bean销毁之前的行为有:使用destroy-method属性,实现DisposableBean接口
     
    lookup-method方法:bean定义为抽象类里面有抽象方法名与lookup-method的方法名相同。解决singleton与prototype作用域不同步
     
    获取其他bean的属性值
    <bean id="son2" class="org.crazyit.app.service.Son">
    <property name="age">
    <!-- 使用嵌套Bean为调用setAge()方法指定参数值 -->
    <bean id="person.son.age" class="org.springframework.beans.factory.config.PropertyPathFactoryBean"/>
    </property></bean>
    或者<bean id="son2" class="org.crazyit.app.service.Son">
    <property name="age">
    <util:property-path path="person.son.age"/>
    </property></bean>

    ---恢复内容结束---

  • 相关阅读:
    ZOJ 3556
    ZOJ 2836
    HDU 2841
    HDU 4135
    POJ 3695
    POJ 2773
    HDU 4407
    HDU 1796
    ZOJ 3688
    ZOJ 3687
  • 原文地址:https://www.cnblogs.com/lijingxiang/p/9581654.html
Copyright © 2011-2022 走看看