Spring框架-Spring的配置

XML提示配置

为eclipse添加Schema的提示配置

配置步骤如下

(1)复制配Schema地址

(如果没有配置文件,可以自己敲或者到Spring的解压目录下的spring-framework-5.1.9.RELEASE/docs/spring-framework-reference/core.html#spring-core查找)

在这里插入图片描述

(2)添加xml用户指定条目

在这里插入图片描述

(3)添加Schema路径、本地文件路径

注意:橙色框框内的Schame location在完成添加路径和地址时eclipse才会有该选项供给用户选择

在这里插入图片描述

bean的相关配置

标签的id和name 的配置

(1)id:使用了月生杜仲的唯一约束,里面不能出现特殊字符

(2)name:没有使用约束中的唯一约束(理论上可以出现重复,但是在实际的开发过程中不允许出现重复)

两者的联系和区别

在一般的使用情况下可以认为两者是一样的实现的是一样的功能,但是在如果配置文件的id必须是含有特殊字符的情况下进行定义这就需要切换至name来使用了

bean的生命周期的配置(了解)

步骤:

(1)首先在需要进行实例化的类中定义初始化方法以及销毁调用的方法

(不需要是接口中的方法,只需要是接口实现类的特有属性即可)

(2)在配置文件中配置初始化调用方法

在这里插入图片描述

(3)初始化调用方法会在对象被创建的时候进行调用,销毁方法在对象在销毁的时候被调用,如将类工厂关闭

在这里插入图片描述

bean的作用范围的配置(重点)

scope属性进行配置Bean的作用范围

scope有以下的几个数值

(1)singleton :默认的,Spring会采用单例模式创建这个对象

(2)prototype:多例模式(Struts2和Spring整合一定会用到)

(3)request: 应用在web项目中,Spring创建这个类以后就会将它存入到request范围中

(4)session:应用在web项目中,Spring创建这个类以后就会将它存入到session范围中

(5)globalsession:应用在web项目,必须在prolet环境下使用,如果没有这种环境,但是又将其配置为了这个属性,时候相当于session。

注意

(1)prolet环境指的是在一个网站有多个页面的情况下,一次配置,全局页面共享。如在淘宝页面登录了账号,在浏览商品的各个页面上都显示已登录信息

(2)在实际的开发中主要使用的是第一第二个属性进行配置

实例

(1)在默认的情况下,即不进行配置的情况下。创建的对象是单例的。这时候不管获取对象多少次都是同一个对象,如下图所示,两次获取的对象的地址是相同的,对象只被初始化一次

在这里插入图片描述

(2)将对象配置为多例模式的

1)将配置文件中对scope的属性修改为prototype

在这里插入图片描述

2)在对上面的获取两次对象代码进行运行,初始化了两次,同时地址也是不一样的。

在这里插入图片描述

注意:这时候工厂虽然关闭了,但是对象并没有销毁,原因是工厂不知道对哪一个对象进行销毁

Spring的属性注入

属性注入的方式

在java的开发中,有下图的几种方式实现对象的属性注入,其中Spring支持构造方法和set方法两种方式进行属性注入。

在这里插入图片描述

构造方法方式的属性注入

(1)定义一个类,并使用构造方法的方式对属性进行设置,如下图

在这里插入图片描述

(2)在对应的标签中添加 进行对属性的注入

在这里插入图片描述

set方法的方式的属性注入

(1)定义一个类,并使用set方法的方式对属性进行注入

在这里插入图片描述

(2)在配置文件中对应的标签中添加标签对属性进行注入

在这里插入图片描述

set方法注入对象类型的属性

(1)定义一个类,这个类的中存在一个对象属性,同时该对象由set方法的方式获得

在这里插入图片描述

(2)在配置文件中找到对应的标签,并添加进行对属性注入。但是因为注入的是对象属性,所以只能是使用ref的方式指向配置的对象id,如下图所示

在这里插入图片描述

注意:使用构造方法设置对象属性也是类似的方法,把value改成ref即可

P名称空间的属性注入方式(Spring2.5以后)

介绍:通过引入p名称空间完成属性的注入

语法:

​ (1)普通属性 p:属性名=”值”

​ (2)对象属性 p:属性名-ref=”值”

实例

(1)打开配置文件并添加P名称空间

在这里插入图片描述

(2)修改配置文件将注入属性的方法写为p名称空间的方式

1)普通属性注入

在这里插入图片描述

2)对象属性注入

在这里插入图片描述

SpEL的属性注入(Spring3.0以后的版本)

介绍:Spring Expression Language,Spring 的表达式语言

语法:

​ (1)#{SpEL}

实例

(1)在配置文件中将普通属性进行注入操作

在这里插入图片描述

(2)对象属性注入

在这里插入图片描述

(3)对象属性和对象方法的调用

被调用的对象必须在配置文件中已经进行了注册

在这里插入图片描述

注意:以上方法是最基本的使用方法,SpEL属性的注入中可以引入复杂的算式进行计算注入。

数组、集合属性的注入

数组属性注入

(1)定义一个类中的数组属性,并通过set方法将属性注入

在这里插入图片描述

(2)配置文件向数组注入多条数据

在这里插入图片描述

集合属性注入

一、向list集合注入属性

(1)类中添加集合定义,并通过使用set方法实现属性注入

在这里插入图片描述

(2)配置文件向list集合添加多条数据

在这里插入图片描述

二、向Map集合注入

注意配置文件中注入属性的方式

在这里插入图片描述

Spring的分模块开发

Spring的分模块开发,这时候会出现多个配置文件,当出现多个配置文件时如何关联多个配置文件?

方法一

类工厂的创建时,加载多个配置文件

在这里插入图片描述

方法二

在配置文件中关联引入其他的配置文件

在这里插入图片描述