基于 XML 的 bean 的自动装配

基于 XML 的 bean 的自动装配

在 spring 的 ioc 容器,可以实现自动装配 bean
先准备三个类

 

 配置xml文件

 <!--自动装配——有两种方式,autowire="byType"和autowire="byName"
    类型的话就每种属性只能有一个,name的话找的是对应属性的setxxx方法里面的xxx对应的bean的id,而不是属性名-->
    <bean class="com.recorder.spring.dao.OrderDao" id="orderDao"/>
    <bean class="com.recorder.spring.service.OrderService"
          id="orderService"
          autowire="byType"/>
    <bean class="com.recorder.spring.web.OrderAction"
          id="orderAction"
          autowire="byType"/>

spring el 表达式(知道即可)

<bean class="com.recorder.spring.bean.Hero" id="hero01">

        <property name="id" value="1"></property>
        <property name="name" value="李白"></property>
        <property name="skill" value="青莲剑歌"></property>

    </bean>
<!-- spring el 表达式使用
     解读:
     1. 通过spel给bean的属性赋值
     -->
    <bean id="spELBean" class="com.recorder.spring.bean.SpELBean">
        <!-- sp el 给字面量 -->
        <property name="name" value="#{'紫英'}"/>
        <!-- sp el 引用其它bean -->
        <property name="hero" value="#{hero01}"/>
        <!-- sp el 引用其它bean的属性值 -->
        <property name="heroName" value="#{hero01.name}"/>
        <!-- sp el 调用普通方法(返回值)  赋值 -->
        <property name="crySound" value="#{spELBean.cry('喵喵的..')}"/>
        <!-- sp el 调用静态方法(返回值) 赋值 -->
        <property name="bookName" value="#{T(com.recorder.spring.bean.SpELBean).read('天龙八部')}"/>
        <!-- sp el 通过运算赋值 -->
        <property name="result" value="#{89*1.2}"/>
    </bean>

SpELBean{name='紫英', hero=Hero{id=1, name='李白', skill='青莲剑歌'}, heroName='李白', crySound='发出 喵喵的..叫声...', bookName='正在看 天龙八部', result=106.8}

 

 

 

posted @ 2022-10-19 22:00  紫英626  阅读(28)  评论(0)    收藏  举报

紫英