为eclipse添加Schema的提示配置
配置步骤如下
(1)复制配Schema地址
(如果没有配置文件,可以自己敲或者到Spring的解压目录下的spring-framework-5.1.9.RELEASE/docs/spring-framework-reference/core.html#spring-core查找)
(3)添加Schema路径、本地文件路径
注意:橙色框框内的Schame location在完成添加路径和地址时eclipse才会有该选项供给用户选择
(1)id:使用了月生杜仲的唯一约束,里面不能出现特殊字符
(2)name:没有使用约束中的唯一约束(理论上可以出现重复,但是在实际的开发过程中不允许出现重复)
两者的联系和区别
在一般的使用情况下可以认为两者是一样的实现的是一样的功能,但是在如果配置文件的id必须是含有特殊字符的情况下进行定义这就需要切换至name来使用了
步骤:
(1)首先在需要进行实例化的类中定义初始化方法以及销毁调用的方法
(不需要是接口中的方法,只需要是接口实现类的特有属性即可)
(2)在配置文件中配置初始化调用方法
(3)初始化调用方法会在对象被创建的时候进行调用,销毁方法在对象在销毁的时候被调用,如将类工厂关闭
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)将对象配置为多例模式的
2)在对上面的获取两次对象代码进行运行,初始化了两次,同时地址也是不一样的。
注意:这时候工厂虽然关闭了,但是对象并没有销毁,原因是工厂不知道对哪一个对象进行销毁
在java的开发中,有下图的几种方式实现对象的属性注入,其中Spring支持构造方法和set方法两种方式进行属性注入。
(1)定义一个类,并使用构造方法的方式对属性进行设置,如下图
(2)在配置文件中对应的标签中添加标签对属性进行注入
(1)定义一个类,这个类的中存在一个对象属性,同时该对象由set方法的方式获得
(2)在配置文件中找到对应的标签,并添加进行对属性注入。但是因为注入的是对象属性,所以只能是使用ref的方式指向配置的对象id,如下图所示
注意:使用构造方法设置对象属性也是类似的方法,把value改成ref即可
介绍:通过引入p名称空间完成属性的注入
语法:
(1)普通属性 p:属性名=“值”
(2)对象属性 p:属性名-ref=“值”
实例
(2)修改配置文件将注入属性的方法写为p名称空间的方式
介绍:Spring Expression Language,Spring 的表达式语言
语法:
(1)#{SpEL}
实例
(3)对象属性和对象方法的调用
注意:以上方法是最基本的使用方法,SpEL属性的注入中可以引入复杂的算式进行计算注入。
数组属性注入
集合属性注入
一、向list集合注入属性
(2)配置文件向list集合添加多条数据
二、向Map集合注入
Spring的分模块开发,这时候会出现多个配置文件,当出现多个配置文件时如何关联多个配置文件?
方法一
方法二