基于XML的Spring IOC基本语法

基于XML的Spring IOC基本语法

1、bean标签:
  • id:给对象在容器中提供一个唯一标识,用于获取对象

  • class:指定类的全限定类名,用于反射创建对象,默认情况下调用无参构造函数创建对象

  • scope:指定对象的作用范围,
    singleton:单例的,整个容器中只有一个对象
    prototype:多例的,每从容器中获取一次对象,就会在容器中创建一个对象,容器中可以有多个对象

  • init-method:指定类中的初始化方法名称

  • destory-method:指定类中的销毁方法名称

2、bean的作用范围和生命周期
  • 单例对象:scope=“singleton”
    一个类只有一个对象实例,它的作用范围就是整个应用
    对象出生:当应用加载,创建容器时,对象就创建了
    对象活着:只要容器在,对象一直活着
    对象死亡:当应用卸载,销毁容器时,对象就被销毁了

  • 多例对象:scope=“prototype”
    一个类在容器中可以有多个对象
    对象出生:当使用对象时,对象就被创建了
    对象活着:只要在使用对象,对象就一直活着
    对象死亡:当长时间不使用,对象就被java的垃圾回收器回收

3、实例化Bean的三种方式
  • 使用默认无参构造方法实例化bean
<bean id="accountService" class="com.example.service.impl.AccountServiceImpl"></bean>
  • spring管理实例工厂,其中factory-method为普通方法
<bean id="instanceFactory"  class="com.example.factory.InstanceFactory"></bean>
 <bean id="accountDao"  factory-bean="instanceFactory" factory-method="createAccountDao"></bean>
  • spring管理静态工厂,其中factory-method为静态方法
 <bean id="accountService" class="com.examp.factory.StaticFactory"  factory-method="createAccountService"></bean>

依赖注入

1、构造函数注入

首先这个类必须有有参构造函数

 <bean id="date" class="java.util.Date"></bean>
 <bean id="accountService" class="com.example.service.impl.AccountServiceImpl">
     <constructor-arg name="name" value="张三"></constructor-arg>
     <constructor-arg name="age" value="12"></constructor-arg>
     <constructor-arg name="birthday" ref="date"></constructor-arg>
 </bean>
2、set方法注入

要求类中有对要注入属性的set方法

<bean id="accountService" class="com.example.service.impl.AccountServiceImpl">
     <property name="name" value="张三"></property>
     <property name="age" value="12"></property>
</bean>
3、注入集合属性

也属于set方法注入,要求类中有对要注入属性的set方法

  • list set array型
<bean id="accountService"  class="com.example.service.impl.AccountServiceImpl">
     <property name="myList">
         <list>
               <value>111</value>
               <value>222</value>
         </list>
     </property>
</bean>

其中list标签可以被array和set替换,因为这三种可以混用

  • map 和 prop型
<bean id="accountService" class="com.example.service.impl.AccountService">
      <property name=“myMap”>
           <map>
               <entry key="AA" value="aa"></entry>
               <entry key="BB" value="bb"></entry>
           </map>
      </property>
      <property name="myProp">
          <props>
               <prop key="SS">ss</prop>
               <prop key="AA">aa</prop>
          </props>
      </property>
 </bean>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值