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>