一、IOC操作Bean管理
1.什么是Bean管理?
- Spring创建对象
- Spring注入属性
- Bean管理是2个操作
2.Bean管理操作有两种方式
- 基于xml配置文件方式实现
- 基于注解方式实现
二、IOC操作Bean管理(基于xml方式)
1.基于xml方式创建对象
- 使用bean标签,标签添加相应的属性,实现对象的创建
- 在bean标签常用的属性
*id属性:唯一标识----context.getBean("id", 对象.class);
*class属性:类的全路径
*name属性:跟id作用类似,只是name可以加一些特殊符号(不常用)
3.创建对象的时候执行的无参数构造方法
2.基于xml方式注入属性
- DI:依赖注入,就是注入属性。DI是IOC的具体实现,属性的注入首先创建对象。
3.第一种方式是 生成set方法
- 创建类,定义属性和对应的set方法
2.在Spring配置文件里面配置对象,配置属性的注入
使用<property>完成属性的注入,name是方法名,value是向属性注入的值
3.创建对象
4.第二种方式 有参数构造器注入
- 创建类,定义属性和有参构造器
2.配置文件
使用<constructor-arg>标签,name是属性名,value是注入的属性值
<constructor-arg index="0" value="实数"></constructor-arg>
index="0"代表有参构造器的第一个参数
5.p名称空间注入(了解)
- 使用p名称空间注入,可以简化xml配置方式
<bean id="book" class="com.zhilei.spring5.Book" p:bname="书名" p:bauthor="小王">
</bean>
三、IOC操作Bean管理(xml注入其他类型属性)
1.字面量-固定值
null值
属性值包含特殊符号<>
<property name="address">
<value><![CDATA[<哈哈>]]></value>
</property>
2.注入属性-外部bean
1.创建两个类service类和dao类
2.在配置文件xml里面service调用dao里面的方法
<bean id="userService" class="com.zhilei.spring5.service.UserService">
<!--注入userDao对象
name是属性值的名称
ref属性是:创建userDao对象bean标签id值
-->
<property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="com.zhilei.spring5.dao.UserDaoImpl">
</bean>
测试一下
3.注入属性-内部bean
一对多的关系:部门和员工
一个部门有多个员工,一个员工只属于一个部门。部门是一,员工是多。
- 在实体类之间表示一对多的关系
部门类
员工类
2.在Spring配置文件进行相关配置
4.注入属性-级联赋值
(1)第1种写法
(2)第2种写法
要在Emp里面写getDept方法
四、IOC操作Bean管理(xml注入集合属性)
1.注入数组类型的属性
//1.数组类型的属性
private String[] courses;
2.注入List集合类型属性
//2.list集合属性
private List<String> list;
<property name="list">
<list>
<value>王</value>
<value>李</value>
<value>张</value>
</list>
</property>
3. 注入Map集合
//3.Map集合属性
private Map<String,String> maps;
//4.set集合属性
private Set<String> sets;
注入Set集合
private Set<String> sets;
<property name="sets">
<set>
<value>王</value>
<value>李</value>
<value>张</value>
</set>
</property>
4.生成set方法
5. 测试