【Spring5框架学习】IOC容器-Bean管理XML方式1

Bean管理

  1. 什么是Bean管理?
    指的是两个操作:
    (1)Spring创建对象
    (2)Spring属性注入
  2. Bean管理操作两种方式
    (1)基于xml配置文件方式实现
    (2)基于注解方式实现

基于XML方式

  1. 基于XML方式创建对象
    (1)在Spring配置文件中,使用Bean标签,标签里面添加对应属性,就可以实现对象创建
    (2)Bean标签常用属性
    *id属性:对象的别名
    *class属性:创建类的全路径
    (3)创建对象的时候,默认执行无参数的构造方法
<bean id="user" class="com.company.spring5.User"></bean>
  1. 基于XML方式注入属性
    (1)DI:依赖注入,即注入属性(DI是IOC的一种具体实现)
    (2)三种注入方式:

set方法:写set方法+配置文件配置属性注入(代码如下)

<bean id="book" class="com.company.spring5.Book">
        <!--使用property完成属性注入-->
        <property name="bname" value="zyq"></property>
</bean>

有参构造方法:创建类以及有参构造方法+配置文件配置属性注入(代码如下)

<bean id="orders" class="com.company.spring5.Orders">
        <constructor-arg name="oname" value="第一单"></constructor-arg>
        <constructor-arg name="address" value="北京市海淀区西土城路10号"></constructor-arg>
</bean>

p名称空间注入(了解):配置文件添加p名称空间+bean标签内进行属性注入

xmlns:p="http://www.springframework.org/schema/p"
<bean id="book" class="com.company.spring5.Book" p:bname="java并发编程">
</bean>

XML注入其他类型属性

  1. 字面量
    (1)null值
<property name="address">
    <null/>
</property>

(2)属性值包括特殊符号(如:“<>”):用CDATA

<property name="address">
    <value><![CDATA[<<南京>>]]></value>
</property>
  1. 注入属性-外部Bean
    (1)创建两个类service类和dao类
    (2)在service调用dao里面的方法
    (3)在spring配置文件中进行配置
<bean id="userService" class="com.company.spring5.service.UserService" >
<!--        注入userDao对象-->
<!--        ref属性:创建userDao对象bean标签id值-->
   <property name="userDao" ref="userDao"></property>
</bean>
<bean id="userDao" class="com.company.spring5.dao.UserDaoImpl" ></bean>
  1. 注入属性-内部Bean
    (1)一对多关系,一个部门多个员工
    (2)在实体类之间表示一对多关系,员工表示所属部门,使用对象类型属性进行表示
    (3)在spring配置文件中进行配置
<!--    内部bean-->
<bean id="emp" class="com.company.spring5.bean.Emp" >
<!--        设置两个普通属性-->
    <property name="ename" value="qq"></property>
    <property name="gender" value="female"></property>
<!--        设置对象类型属性-->
    <property name="dept">
        <bean id="dept" class="com.company.spring5.bean.Dept">
            <property name="dname" value="财务部"></property>
        </bean>
    </property>
</bean>
  1. 注入属性-级联赋值
    (1)写法1:使用ref
<bean id="emp" class="com.company.spring5.bean.Emp" >
<!--        设置两个普通属性-->
    <property name="ename" value="qq"></property>
    <property name="gender" value="female"></property>
<!--        级联赋值-->
    <property name="dept" ref="dept">
    </property>
</bean>
<bean id="dept" class="com.company.spring5.bean.Dept">
    <property name="dname" value="躺平部"></property>
</bean>

(2)写法2:要在Emp类中加上getDept()方法,之后在Emp的property name属性中用dept.dname赋值

<!--    级联赋值-->
<bean id="emp" class="com.company.spring5.bean.Emp" >
<!--        设置两个普通属性-->
    <property name="ename" value="qq"></property>
    <property name="gender" value="female"></property>
<!--        级联赋值-->
    <property name="dept" ref="dept"></property>
    <property name="dept.dname" value="卷起来"></property>
</bean>

XML注入集合属性

  1. 注入数组类型属性
  2. 注入List集合类型属性
  3. 注入Map集合类型属性
    (1)创建类,定义数组、list、map、set类型属性,生成对应set方法
    (2)在Spring配置文件中配置
<bean id="stu" class="com.company.spring5.collectiontype.Stu" >
    <property name="courses">
        <array>
            <value>语文</value>
            <value>数学</value>
            <value>英语</value>
        </array>
    </property>
    <property name="list">
        <list>
            <value>张三</value>
            <value>王翠花</value>
            <value>艾英语</value>
        </list>
    </property>
    <property name="map">
        <map>
            <entry key="JAVA" value="java"></entry>
            <entry key="PHP" value="php"></entry>
        </map>
    </property>
    <property name="set">
        <set>
            <value>mysql</value>
            <value>java</value>
            <value>english</value>
        </set>
    </property>
</bean>
  1. 在集合里设置对象类型的值
<!--创建类的Bean-->
<bean id="course1" class="com.company.spring5.collectiontype.Course" >
    <property name="cname" value="Course1"></property>
</bean>
<bean id="course2" class="com.company.spring5.collectiontype.Course" >
    <property name="cname" value="Course22"></property>
</bean>
<!--注入List集合类型,值是对象-->
<property name="courseList">
    <list>
        <ref bean="course1"></ref>
        <ref bean="course2"></ref>
    </list>
</property>
  1. 把集合注入部分提取出来
    (1)在spring配置文件中引入名称空间util
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:util="http://www.springframework.org/schema/util"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
                    http://www.springframework.org/schema/util http://www.springframework.org/schema/util/spring-util.xsd">

(2)使用util标签完成list集合注入提取

<!--   1. 提取list集合类型属性注入-->
<util:list id="bookList">
    <value>水浒传</value>
    <value>西游记</value>
</util:list>
<!--   2. 提取list集合类型属性注入使用-->
<bean id="book" class="com.company.spring5.collectiontype.Book">
    <property name="list" ref="bookList"></property>
</bean>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值