Bean管理操作方式——基于xml配置文方式实现

1——    当Bean标签里的value值含特殊符号时--->使用<![CDATA[属性值]]>

      注入空值--->使用<null/>

 

2——注入外部Bean

            在一个bean标签中的property标签中使用ref导入另一个bean标签的id

 

3——注入属性-内部赋值(内部bean)

            在bean标签里的property标签里在插入一个bean的对象,代码如下

 <bean id="emp" class="com.spring5.company.Emp">
<!-- 设置两个普通属性-->
<property name="ename" value="Lucy"></property>
<property name="gender" value="女"></property>

<!-- 设置对象类型属性,内部bean,因为是一个对象类型,所以不能用value来赋值-->
<property name="dept">
<bean id="dept" class="com.spring5.company.Dept">
<property name="dname" value="保安部"></property>
</bean>
</property>
</bean>

       

4——级联赋值    就是外部bean,只不过外部bean没有value值,级联赋值有value值 

 

5——)xml注入集合属性

 

<!--    集合类型的属性注入-->
<bean id="stu" class="com.collectionType.Stu">
<!-- 数组类型注入-->
<!-- value只能填一个值,需要使用list或者array标签,里面可以填写多个value值 -->
<property name="course">
<array>
<value>Java课程</value>
<value>数据库课程</value>
</array>
</property>
<!-- list类型注入-->
<property name="list">
<list>
<value>张三</value>
<value>小三</value>
</list>
</property>
<!-- map类型注入-->
<property name="map">
<map>
<entry key="JAVA" value="java"></entry>
<entry key="PHP" value="php"></entry>
</map>
</property>
<!-- set类型注入-->
<property name="sets">
<set>
<value>MySQL</value>
<value>Redis</value>
</set>
</property>
</bean>

 

6——) bean设置单实例与多实例

      需要在bean标签里加上scope属性   singleton(默认值)表示单实例  加载xml配置文件的时候就会创建一个单实例对象

      prototype   表示多实例   使用getBean方法的时候创建多实例对象

  scope属性值还有request,session

 

 

 

7——)bean的生命周期

    1)通过构造器创建bean实例(无参构造)

    2)--- 为bean的属性设置值和对其他bean的引用(调用set方法)

    3--)------把bean的实例传递bean后置处理器的一个方法

    4--)-----调用bean的初始化方法(需要进行初始化的方法)

    5--)-----把bean的实例传递bean后置处理器的另一个方法

    6--)----使用bean(调用配置文件)

    7--)---当容器关闭的时候,调用bean的销毁方法

      

使用后置处理器:------)

      1)创建类,使用BeanPostProcessor接口

      2)在bean配置文件中增加后置处理器对象         

<bean id="myBeanPost" class="com.lifeLine.MyBeanPost"></bean>

 

8——)  xml自动装配

    Spring根据属性名称或者属性类型自动将匹配的属性值进行注入

 

使用bean标签属性autowire,实现自动装配
autowire常用两个值——byName,byType,
byName根据属性名注入:注入bean的id值与类中属性的名称要一样
byType根据属性类型注入:注入时根据属性的类型来注入,如果同一类型的对象有多个,则不能使用



9)——IOC操作bean管理(外部属性文件)

  1)——配置德鲁伊连接池

  2)——引入德鲁伊jar包

9.1)——把外部properties文件引入到spring配置文件中

  1)——引入context名称空间

        

xmlns:context="http://www.springframework.org/schema/context".
 
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd

 

 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xmlns:context="http://www.springframework.org/schema/context"
       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/context http://www.springframework.org/schema/context/spring-context.xsd">

<!--    直接配置德鲁伊连接池-->
<!--    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">-->
<!--        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>-->
<!--        <property name="url" value="jdbc:mysql://localhost:3306/iotest"></property>-->
<!--        <property name="username" value="root"></property>-->
<!--        <property name="password" value="root"></property>-->
<!--    </bean>-->

<!--    引入外部属性文件-->
    <context:property-placeholder location="classpath:jdbc.properties"/>

<!--    配置连接池-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="${driver}"></property>
        <property name="url" value="${url}"></property>
        <property name="username" value="${user}"></property>
        <property name="password" value="${password}"></property>
    </bean>
</beans>

 

posted on 2021-07-31 11:32  倾城烟雨楼  阅读(91)  评论(0)    收藏  举报

导航