1. Spring Bean XML定义示例

发布于 2022年 03月 16日 01:30

1. Spring Bean XML定义示例

示例1: 普通Bean注入

  • id
  • class
  • property id value
    • value 可以是list
    • value可以是config.properties
   <bean id="user" class="org.geekbang.thinking.in.spring.ioc.overview.domain.User">
        <property name="id" value="1"/>
        <property name="name" value="小马哥"/>
        <property name="city" value="HANGZHOU"/>
        <property name="workCities" value="BEIJING,HANGZHOU"/>
        <property name="lifeCities">
            <list>
                <value>BEIJING</value>
                <value>SHANGHAI</value>
            </list>
        </property>
        <property name="configFileLocation" value="classpath:/META-INF/user-config.properties"/>
    </bean>

示例2: 继承关系Bean定义

  • parent 可以指定继承关系
  • primary 和@primary 类似,指定为优先注入
 <!-- 普通 beanDefinition GenericBeanDefinition -->
    <!-- 合并后 GenericBeanDefinition 变成 RootBeanDefinition,并且覆盖 parent 相关配置-->
    <!-- primary = true , 增加了一个 address 属性 -->
    <bean id="superUser" class="org.geekbang.thinking.in.spring.ioc.overview.domain.SuperUser" parent="user"
          primary="true">
        <property name="address" value="杭州"/>
    </bean>

示例3: 非自定义Bean定义

  • 可以注入objectFactory
 <bean id="objectFactory" class="org.springframework.beans.factory.config.ObjectFactoryCreatingFactoryBean">
        <property name="targetBeanName" value="user"/>
    </bean>

示例4: 集合Bean定义

  • users 为 List
  • autowire注入方式为byType
    <bean id="userRepository" class="org.geekbang.thinking.in.spring.ioc.overview.repository.UserRepository"
          autowire="byType"> <!-- Auto-Wiring -->
        <!-- 手动配置 -->
                <property name="users">
                    <util:list>
                        <ref bean="superUser" />
                        <ref bean="user" />
                    </util:list>
                </property>

    </bean>

推荐文章