Spring——bean标签的使用

singleton bean在加载配置文件时候创建单一实例

prototype bean在每次执行getBean()方法时候执行,即多实例

init-method 定义初始化方法 多用于资源的加载
destroy-method 定义销毁方法 多用于资源的释放

如:在impl类中添加 init()方法和destroy()方法,则在applicationContext.xml文件中配置Bean如下:

<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy"></bean>

<!--1.通过构造方法实例化Bean-->
    <bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy"></bean>
<!--2.通过构造方法实例化Bean-->
      <bean id="userDao" class="com.itcast.factory.UserStaticFactory" factory-method="getUserDao"></bean>
<!--3.通过普通工厂方法实例化Bean-->
    <!--3.1实例化UserDynamicFactory类-->
    <bean id="factory" class="com.itcast.factory.UserDynamicFactory" ></bean>
    <!--3.2通过3.1的factory 实例化userDao    -->
    <bean id="userDao" factory-bean="factory" factory-method="getUserDao"></bean>

set方法依赖注入 name指定字段名,ref引用spring容器中的id,

使用p标签applicationContext文件设置

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:p="http://www.springframework.org/schema/p"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!--1.通过构造方法实例化Bean-->
        <bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy"></bean>
<!--2.通过构造方法实例化Bean-->
    <!--    <bean id="userDao" class="com.itcast.factory.UserStaticFactory" factory-method="getUserDao"></bean>-->
<!--3.通过普通工厂方法实例化Bean-->
    <!--3.1实例化UserDynamicFactory类-->
<!--    <bean id="factory" class="com.itcast.factory.UserDynamicFactory" ></bean>-->
<!--    &lt;!&ndash;3.2通过3.1的factory 实例化userDao    &ndash;&gt;-->
<!--    <bean id="userDao" factory-bean="factory" factory-method="getUserDao"></bean>-->
<!--<bean id="userService" class="com.itcast.service.impl.UserServiceImpl">-->
<!--    <property name="userDao" ref="userDao"></property>-->
<!--</bean>-->
    <bean id="userService" class="com.itcast.service.impl.UserServiceImpl" p:userDao-ref="userDao"/>


</beans>

构造依赖注入的name指定字段名 ,ref指定配置文化中bean 属性id值

    <!--构造器依赖注入-->
    <bean id="userService" class="com.itcast.service.impl.UserServiceImpl" >
        <constructor-arg name="userDao" ref="userDao">
        </constructor-arg>
    </bean>

1.set方式注入普通数据,实现数据注入的效果

  <bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
            <property name="age" value="20"></property>
            <property name="userName" value="zhangsan"></property>
        </bean>

2.set方式注入集合数据

        2.1List<Stiring>

<bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
            <property name="strList">
                <list>
                    <value>王五</value>
                    <value>李四</value>
                    <value>张三</value>
                </list>
            </property>
</bean>

        2.2Map<String,User>

    <bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy">        
         <property name="userMap">
                <map>
                    <description></description>
                    <entry key="张三" value-ref="user1"></entry>
                    <entry key="李四" value-ref="user2"></entry>
                    <entry key="王五" value-ref="user3"></entry>
                </map>
          </property>

</bean>

   <bean id="user1" class="com.itcast.domain.User">
        <property name="name" value="张三"></property>
    </bean>
    <bean id="user2" class="com.itcast.domain.User">
        <property name="name" value="李四"></property>
    </bean>
    <bean id="user3" class="com.itcast.domain.User">
        <property name="name" value="王五"></property>
    </bean>

        2.3

    <bean id="userDao" class="com.itcast.impl.UserDaoImpl" init-method="init" destroy-method="destroy">
         <property name="properties">
                <props>
                    <prop key="zhangsan">张三</prop>
                    <prop key="lisi">李四</prop>
                    <prop key="wangwu">王五</prop>
                </props>
        </property>
    </bean>

get依赖注入的id是属性名(就是去get后的名字),

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值