spring bean 陈年老笔记

spring bean

  1. spring的容器有BeanFactory和ApplicationContext两种 spring 用于管理javabean对象

  2. AppliacationContext继承自BeanFactory,拥有更多的企业级方法推荐使用。

    ​ 实例化://加载ClassPath下的配置文件实例化

    ```java
    

    String conf =“applicationContext.xml”;

    ApplicationContext ac = new ClassPathXmlApplicationContext(conf);
    ```

    如果是加载系统中的配置文件则是FileSystemXmlApplicationContext(conf)

    • 注意:applicationcontext默认启动时将所有单列模式提前实例化,可以使用bean的lazy-init=true改变
  3. 实例化bean

    1. 通过构造器实例化bean <bean id="obj1" class="java.util.GregorainCalendar/>"
    2. 通过静态工厂方法实例化 <bean id="obj2" class="java.util.Calendar" factory-method="getInstance"/>
    3. 通过实例工厂方法实例化 <bean id="obj3" class="java.util.GregorainCalendar"/> <bean id="obj4" factory-bean="obj3" factory-method="getTime"/>
  4. bean的作用域:<bean id="obj5" class="java.util.GregorainCalendar" scope="prototype/>"

  5. bean的别名: <alias name="fromname" alias="toname"/>

  6. bean的生命周期:回调destroy-method="destroy" init-method="init" lazy-init=true

    !!!对应在顶级的里面写default-xxx-xxx来实现全部

  7. bean之间的依赖关系用 depends-on

  8. IOC控制反转,即由最初的new方式创建,转变为第三方框架创建和注入,IOC可分为依赖注入和依赖查找

    而spring框架用的是依赖注入DI实现IOC控制。*这才是spring的核心

    • 依赖注入:通过构造方法参数或者方法参数传入建立关联

    • DI注入有两种方式

      1. setter注入

           <bean id="computer"class="com.tarena.bean.Computer">
                <property name="mainboard" value="技嘉"/>
                <property name="hdd" value="希捷"/>
                <property name="ram" value="金士顿"/>
            </bean>
        
      2. 构造器注入

         <bean id="phone"class="com.tarena.bean.MobilePhone">
                <constructor-arg index="0" value="ARM"/>
                <constructor-arg index="1" value="2G"/>
            </bean>
        
      3. 引用注入

        <util:list id="langList">
                <value>c++</value>
                <value>python</value>
            </util:list>
        
         <bean id="msg2" class="com.tarena.bean.MessageBean">
                <property name="langs" ref="langList"/>
                <property name="cities" ref="citySet"/>
                <property name="score" ref="scoreMap"/>
                <property name="props" ref="paramProp"/>
            </bean>    
        
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值