(四)Spring详解——Bean关系(DI)

两种依赖注入方式

  • 属性注入,调用set方法
<bean id="goodsDao" class="com.shinerio.dao.GoodsDao"></bean>
<bean id="goodsService" class="com.shinerio.service.GoodsService">
        <property name="dao" ref="goodsDao"></property>
</bean>
  • 构造注入
    <bean id="goodsDao" class="com.shinerio.dao.GoodsDao"></bean>
    <bean id="goodsService" class="com.shinerio.service.GoodsService">
        <!-- 可通过类型,索引,参数名 -->
        <constructor-arg index="0" ref="goodsDao"></constructor-arg>
        <!--  
        <constructor-arg name="dao" ref="goodsDao"></constructor-arg>
        <constructor-arg type="com.shinerio.dao.GoodsDao" ref="goodsDao"></constructor-arg>
        -->
    </bean>

使用set方法注入需要遵循javabean规范
JavaBean:是本质就是一个POJO类,但具有一下限制:

  • 该类必须要有公共的无参构造器,如public HelloImpl4() {};
  • 属性为private访问级别,不建议public,如private String message;
  • 属性必要时通过一组setter(修改器)和getter(访问器)方法来访问;
  • setter方法,以“set” 开头,后跟首字母大写的属性名,如“setMesssage”,简单属性一般只有一个方法参数,方法返回值通常为“void”;
  • getter方法,一般属性以“get”开头,对于boolean类型一般以“is”开头,后跟首字母大写的属性名,如“getMesssage”,“isOk”;
  • 还有一些其他特殊情况,比如属性有连续两个大写字母开头,如“URL”,则setter/getter方法为:“setURL”和“getURL”,其他一些特殊情况请参看“Java Bean”命名规范。

注入集合数组

<bean id = "good" class="com.shinerio.domain.Goods">
        <property name="name" value="可乐"></property>
        <property name="price" value="3.0"></property>
        <property name="num" value="100"></property>
        <property name="color">
            <list value-type="java.lang.String">
                <value></value>
                <value></value>
                <value></value>
            </list>
        </property>
    </bean>

Set类型:需要使用标签来配置注入,其配置参数及含义和标签完全一样
Collection类型:因为Collection类型是Set和List类型的基类型,所以使用或标签都可以进行注入,配置方式完全
Map注入采用键值对

 <map>  
                    <entry key="10" value="CoreJava">  
                    </entry>  
                    <entry key="11" value="JavaWeb">  
                    </entry>  
                    <entry key="12" value="SSH2">  
                    </entry>  
                </map>

数组的注入(二维数组嵌套使用arry标签)和set用法类似

Properties注入:Spring能注入java.util.Properties类型数据,需要使用标签来配置注入,键和值类型必须是String,不能变,子标签值来指定键值对

注入null值

通过<null/>标签来注入

Spring还支持级联注入
延迟初始化:
<bean>标签上指定 “lazy-init” 属性值为“true”即可延迟初始化Bean

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值