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>
浙公网安备 33010602011771号