Bean标签
Bean标签配置范围
Bean生命周期配置
Bean的依赖注入概念
注入依赖
实现构造注入
实体类
public class AccountServiceImpl implements IAccountService {private String name;private Integer age;private Date time;public AccountServiceImpl(String name, Integer age, Date time) {this.name = name;this.age = age;this.time = time;}public void saveAccount() {System.out.println("service"+name+age+time);}}
配置文件
<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beanshttps://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="accountService" class="org.com.qst.service.impl.AccountServiceImpl"><constructor-arg name="name" value="mys"></constructor-arg><constructor-arg name="age" value="21"></constructor-arg><constructor-arg name="time" ref="now"></constructor-arg></bean><bean id="now" class="java.util.Date"></bean></beans>
注入不同的数据类型
注入直接量(基本数据类型,字符串)
使用
<bean id="User" class="entity.User">
<property name="username">
<value>张三</value>
</property>
<property name="age">
<value>20</value>
</property>
</bean>
引用其他bean组件
spring中的组件可以互相引用,从而建立依赖关系
<!--定义UserDao对象,并指定id为userDao-->
<bean id="userDao" class="dao.UserDao"/>
<!--定义UserService对象,并指定id为userService-->
<bean id="userService" class="service.UserService">
<!--为UserService的dao属性赋值,使用ref bean模式-->
<property name="dao">
<!--引用id为userDao的对象为dao赋值-->
<ref bean="userDao"/>
</property>
<!--为UserService的dao属性赋值,使用ref local模式-->
<property name="dao">
<!--引用id为userDao的对象为dao赋值-->
<ref local="userDao"/>
</property>
</bean>
local和bean的区别在于,spring的配置文件是可以拆分成多个的,,使用local属性只能在同一个配置文件中检索bean的id,
而使用bean属性可以在其他配置文件中检索id
使用内部bean
如果一个bean组件只在一处使用,可以把它定义为内部bean
<!--定义UserService对象,并指定id为userService-->
<bean id="userService" class="service.UserService">
<!--为userService的dao赋值-->
<property name="dao">
<!--定义userDao对象-->
<bean class="dao.UserDao"/>
</property>
</bean>
注入集合类型的属性
list集合
对于list集合或数组类型的属性,可以使用 标签来注入
<bean id="user" class="entity.User">
<property name="userlist">
<list>
<!--定义list集合或数组中的元素-->
<value>足球</value>
<value>篮球</value>
</list>
</property>
</bean>
set集合
对于set集合可以使用
<bean id="user" class="entity.User">
<property name="userlist">
<set>
<!--定义set集合中的元素-->
<value>足球</value>
<value>篮球</value>
</set>
</property>
</bean>
map集合
对于map集合可以使用
<bean id="user" class="entity.User">
<property name="userlist">
<map>
<!--map集合中的键值对-->
<entry>
<key>
<value>name</value>
</key>
<value>张三</value>
</entry>
<entry>
<key>
<value>age</value>
</key>
<value>20</value>
</entry>
</map>
</property>
</bean>
properties
对于properties类型的属性可以使用实例的方式注入
<bean id="user" class="entity.User">
<property name="userlist">
<props>
<!--定义properties中的键值对-->
<prop key="name">张三</prop>
<prop key="age">20</prop>
</props>
</property>
</bean>
注入空字符串和NULL值
可以使用
<!--注入空字符串-->
<bean id="user" class="entity.User">
<property name="userlist"><value></value></property>
</bean>
<!--注入NULL值-->
<bean id="user" class="entity.User">
<property name="userlist"><null/></property>
</bean>

