Spring02:Spring配置文件详细讲解包含Bean标签基本配置、范围配置、生命周期配置、依赖注入等知识点

目录

1.1Bean标签基本配置

1.2Bean标签的范围配置

 1.3Bean生命周期配置

 1.4Bean实例化三种方式

1.5依赖注入的两种方式

1.5.1依赖注入的概念

1.5.2setter方法

 1.5.3构造方法注入

1.6 Bean的依赖注入的数据类型

1.6.1引用数据类型注入

1.6.1普通数据类型注入

 1.6.2集合注入

 1.7引入其他配置-分模块开发

1.1Bean标签基本配置

用于配置对象交由Spring来创建。

默认情况下它调用的类是无参构造函数

基本属性:

id:Bean实例在Spring容器中的唯一标识

class:Bean的全限定名称

1.2Bean标签的范围配置

scope:指对象的作用范围,取值如下:

默认是singleton;

1.2.1singleton创建的对象是同一对象,当应用加载,创建容器时,对象被创建。

实例化时机:当Spring核心文件被加载时,实例化配置的Bean实例

对象销毁:当应用卸载。销毁容器时,对象就被销毁。

 1.2.2proptpye创建的对象不是同一对象,当使用对象时,创建新的对象实列。

实例化时机:当调用getBean()方法时实例化Bean。

对象销毁:对象长时间不用时,被java的垃圾回收器会收了。

 1.3Bean生命周期配置

liit-method:指类中的初始化方法名称

destrory-method:指类中销毁方法名称

//创建对象的方法

//配置生命周期配置

 //测试成功 

 1.4Bean实例化三种方式

无参构造方法实例化

工厂静态方法实列化

工厂实例方法实例化

1.4.1 前面都是无参构造

1.4.2工厂静态方法实列化

首先实现创建静态工厂

其次在配置文件中 ,说明对应的静态工厂包位置,以及对应静态工厂方法 

因为是静态,无需创建StaticFatory就可以获取工厂方法

测试运行,与之前一样,创建成功

 1.4.2工厂实列方法实列化

首先创建实例工厂 

 配置 要创建工厂,才能获取实例方法,所以要声明工厂bean

 运行测试,创建成功

1.5依赖注入的两种方式

1.5.1依赖注入的概念

怎么办把dao层的UserDao注入到service层里的UserService呢

setter方法

构造方法

1.5.2setter方法

前置准备:

1.创建service层,创建UserService接口,以及它的实现类

 2.配置UserService bean 以及UserDao bean ,声明UserService里面的setUserDao,以及它的引用UserDao 使用ref

 注意 这里的 ref="userDao" 是引用容器生成的userDao bean

 这里的property name="userDao" 是setUserDao属性名,set后面的UserDao,首字母小写

 3.测试,UserService调用UserDao里面的save方法成功;

setter简洁注入方式 p命名空间

 1.5.3构造方法注入

1.构造器注入UserDao

 2. 配置UserService bean 以及UserDao bean ,声明UserService里面的构造器,以及它的引用UserDao 使用ref

注意这里的constructor-arg name="userDao"是构造器里面的参数

1.6 Bean的依赖注入的数据类型

普通数据类型

引用数据类型

集合数据类型

1.6.1引用数据类型注入

因为前面的案例都是 ref 引用数据类型注入,下面就不演示了

1.6.1普通数据类型注入

1.添加name、age属性,这里我使用了setter注入,构造器方式也可以 

2.配置,因为是普通数据类型,所以我们不需要用到ref引用,只有value对对应的属性赋值

 3.测试,成功输出name和age

 1.6.2集合注入

这里演示的是list map property集合注入

1.创建list 、map、properties,设置set方法

2.配置 对各个集合赋值,注意User 引用类型需要单独创建Bean

<?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:p="http://www.springframework.org/schema/p"
       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
    <!--集合注入-->
    <bean id="userDao" class="com.hzw.dao.impl.UserDaoImpl" >
      <property name="strlist">
          <list>
              <value>233</value>
              <value>222</value>
              <value>293</value>
          </list>
      </property>
        <property name="userMap">
            <map>
                <entry key="user01" value-ref="user1"></entry>
                <entry key="user02" value-ref="user2"></entry>
            </map>
        </property>
        <property name="properties">
            <props >
                <prop key="p1">111</prop>
                <prop key="p2">222</prop>
            </props>
        </property>
    </bean>

    <!--对应的引用User bean-->
    <bean id="user1" class="com.hzw.domin.User">
        <property name="username" value="狗子1"></property>
        <property name="addr" value="广州"></property>
    </bean>
    <bean id="user2" class="com.hzw.domin.User">
        <property name="username" value="狗子2"></property>
        <property name="addr" value="武汉"></property>
    </bean>
</beans>

 3.测试,各个集合添加数据成功

 1.7引入其他配置-分模块开发

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值