1.Bean管理
1 什么是bean管理
Bean管理指的是两个操作
- Spring创建对象
- Spring注入属性
Bean管理操作有两种方式
- 基于xml配置文件方式实现
- 基于注解方式实现
2.IOC(xml方式)
2.1 xml方式创建对象
<bean id="user" class="date.User"></bean>
-
在spring配置文件中,使用bean标签,标签里面添加对应属性,就可以实现对象的创建
-
在bean标签有很多属性,介绍常用的属性:
id属性:唯一标识 class属性:要创建对象的类的全路径 name属性:作用与id一样,但是name中可以加入一些特殊符号,现在几乎不怎么使用 -
创建对象的时候默认执行无参构造方法创建对象
2.2 xml方式注入属性
- DI:依赖注入,就是注入属性,是IOC中一种具体实现形式,在创建对象的基础之上注入属性
第一种注入方式:使用set方法进行注入
需要该类具有set方法,否则报错
<bean id="book" class="date.Book">
<!-- 在bean标签里面使用property完成属性注入-->
<property name="bname" value="易筋经"></property>
</bean>
第二中注入方式:使用有参构造器注入
<bean id="books" class="date.Book">
<!-- 有参构造器注入-->
<constructor-arg name="bname" value="孙悟空"></constructor-arg>
</bean>
3 xml方式注入其他类型属性
1.字面量
(1) null值
<bean id="book" class="date.Book">
<property name="addrass">
<null></null>
</property>
</bean>
(2)属性值包含特殊符号
<bean id="book" class="date.Book">
<property name="addrass" value="<>南京<>"></property>
</bean>
即使用了转义字符
4 注入外部bean
(1) 创建两个类service类和dao类
(2) 在service调用dao里面的方法
(3) 在spring配置文件中进行配置
<!--service和dao对象创建-->
<bean id="userService" class="service.UserService">
<property name="userDao" ref="userdao"></property>
<!-- name中放的是属性名称 ref中放的是刚创建对象的id值-->
</bean>
<bean id="userdao" class="dao.UserDaoImpl"></bean>
5 注入内部bean和级联赋值
内部bean 在bean的内部创建其他bean
(1)一对多关系:部门和员工一个部门有多个员工,一个员工属于一个部门部门是一,员工是多
(2)在实体类之间表示一对多关系,员工表示所属部门,使用对象类型属性进行表示
<bean id="emp" class="bean.Emp">
<property name="ename" value="bob"></property>
<property name="gender" value="男"></property>
<property name="dept">
<bean id="dept" class="bean.Dept">
<property name="name" value="安保部"></property>
</bean>
</property>
</bean>