Spring配置文件

3.1 Bean标签的基本配置

用于配置对象交由Spring来创建。
默认情况下他调用的是类中的无参构造,如果没有无参构造则不能创建成功。

基本属性:

  • id:Bean实例在Spring容器中的唯一标识
  • class:Bean的全限定名称

3.2 Bean标签的范围配置

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

取值范围说明被创建的时机
singleton默认的,单例的加载配置文件,创建Spring容器的时创建
prototype多利的创建对象的时(getBean();)
requestWEB项目,Spring创建一个Bean对象,将对象存入request域中
sessionWEB项目,Spring创建一个Bean对象,将对象存入session域中
global sessionWEB项目,应用中Portlet环境

1、当scope的取值范围为singleton时

Bean的实例化个数:1个
Bean的实例化实际:当Spring核心文件被加载时,实例化配置的备案实例
Bean的生命周期:

  • 对象创建:当应用加载时,对象被创建了
  • 对象运行:只要容器在,对象一直活着
  • 对象销毁:当应用卸载,销毁容器时对象就被销毁了

2、当scope的取值为prototype时

Bean的实例化个数:多个
Bean的实例化时机:当调用getBean()方法时实例化Bean

  • 对象创建:当使用对象时,创建新的对象实例
  • 对象运行:只要对象在使用中,就一直活着
  • 对象销毁:当对象长时间不用时,被Java的垃圾回收器回收

3.3 Bean的生命周期配置

  • init-method:指定类中的初始化方法名称(类加载时执行)
  • destroy-method:指定类中的销毁方法名称(手动关闭时执行)

3.4 Bean实例化的三种方式

  • 无参构造方法的实例化
	<bean id="UserDao" class="com.orange.Impl.UserDaoImpl"></bean>
  • 工厂静态方法的实例化
	<bean id="UserDao" class="com.orange.factory.SasticFactpry" factory-method="getUserDao"></bean>
  • 工厂实例方法的实例化
    <bean id="Factory" class="com.orange.factory.DynamicFactory" ></bean>
    <bean id="UserDao" factory-bean="Factory" factory-method="getUserDao"></bean>

3.5 Bean的依赖注入分析

因为UserService和UserDao都在Spring容器中,二最终程序直接使用的是UserService,所以可以在Spring容器中,将UserDao设置到User Service内部。
在这里插入图片描述

3.6 Bean的依赖注入概念

依赖注入:是Spring框架核心IOC的具体实现

在编写程序时,通过控制反转,把对象的创建交给了Spring,但是到马总不可能出现没有依赖的情况。
IOC解耦只是减低他们的依赖关系,但不会消除。例如:业务层人会调用持久层的方法。

那么这种业务层和持久层的依赖关系,在使用Spring之后就让Spring来维护了。
简单来说,就是坐等框架吧持久层对象传入业务层,而不用我们自己去获取。

将UserDao注入到UesrService内部

  • 构造方法
  • set方法

3.7 Bean的依赖注入的方式

  1. set方法注入
    P命名空間諸如的本質也是set方法注入,但比起上述的set方法注入更方便,主要体现在配置文件中。
    首先,需要引入P命名空间:
	xmlns:p="http://www.springframework.org/schema/p"
其次,要修改注入方式
	<bean id="userService" class="com.orange.service.Impl.UserServiceImpl" p:userDao-ref="userdata"></bean>
  1. 通过构造方法注入
    首先生成有参构造和无参构造
	private UserDao userDao;

    public UserServiceImpl(UserDao userDao) {
        this.userDao = userDao;
    }

    public UserServiceImpl(){
        
    }

其次修改配置文件

	<bean id="userdata" class="com.orange.Impl.UserDaoImpl" ></bean>
    <constructor-arg name="userDao" ref="userdata"></constructor-arg></bean>

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

上面的操作,都是注入的引用Bean,除了对象的引用可以注入,普通数据类型,集合都可以在容器中进行注入

注入数据的三种数据类型

  • 普通数据类型(value)
  • 引用数据类型(ref)
  • 集合数据类型(子标签)

3.9 引入其他的配置文件

实际开发中,Spring的配置内容非常的多,这就导致Spring配置很繁杂而且体积很大,所以,可以将部分配置才接到其他的配置文件中,二Spring主配置文件通过import标签进行加载

	<import resource="applicationContext-User.xml"></import>

Spring的重点配置

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值