Spring框架入门(一)

                                        第一章 Spring介绍

正是因为Spring框架性质是属于容器性质的,容器中装什么对象就有什么功能,所以可以一站式。

                                         第二章 Spring搭建

2.1 导包

将下面两个压缩文件解压

Spring需要的所有jar包都在4.2.4中,上面的jar包是一些流行的第三方工具类等等,

扫描二维码关注公众号,回复: 3438608 查看本文章

doc是文档,libs是需求的jar包,schema是需要的约束文件。

要导入什么jar包要看下面的图片。

与数据访问相关的由五个jar包,jdbc等等

web中封装了一些web基础。

核心容器包括四个包。是我们要导入的最最基础的包。SpEL是spring-expression。

导入日志包

老版本还需导入(可选,稳妥起见)

2.2 创建一个对象

2.3 书写配置注册对象到容器

位置任意,建议放到SRC下,配置文件名字任意,推荐叫applicationContext。

导入约束:

打开preference搜cata。

点击Add,依照下图的路径选择,Key-type选择Schema location,达到下图效果。

再key后面加上反斜杠/,并将上面的,复制到key的最后,效果如下。

打开applicationxml,输入beans,切换到design视图,右键选择edit Namespace,再选择Add,选择xsi,点击ok,再点Add,选择下面的Specify New Namespace,选择Browse,选择下面的Select XML catalog entry,找到刚才导入的schema,选择ok,将刚才去掉文件名的一段复制到Namespace上,选择ok,出现最后的图代表已成功。

书写配置注册对象到容器

假如applicationContext文件的位置在,那么加载方式为

                                      第三章 Spring概念

3.1 思想

IOC:全称是inverse of control ,将我们创建对象的方式反转,以前对象的创建是由我们开发人员自己维护,包括依赖关系也是自己注入,使用了spring之后,对象的创建以及依赖关系可以由spring完成创建以及注入,反转控制就是反转了对象的创建方式,从我们自己创建反转给了程序。

DI:Dependency Injection   实现IOC思想需要 DI做自持。

注入方式:set方法注入,构造方法注入,字段注入。

注入类型:值类型注入(八大基本数据类型)  引用类型注入(service依赖dao,web依赖service,将依赖对象注入)

可以通过配置直接创建,

只有实现了DI,才能实现IOC。

3.2 applicationContext&BeanFactory

BeanFactory

BeanFactory是最底层的接口,一直向下发展,是Spring原始接口,针对原始接口的实现类功能较为单一。

BeanFactory接口实现类的容器,特点是每次获得对象时才会创建对象(类似需要使用时才会创建)。

后来发展出了ApplicationContext,每次容器启动时就会创建容器中配置的所有对象,并提供更多的功能。

可以从类路径下加载配置文件:ClassPathXmlApplicationContext

从硬盘绝对路径下加载配置文件:FileSystemXmlApplicationContext(d:/xxx/yyy/xxx")

结论:web开发中,使用applicationContext,再资源匮乏的环境可以使用BeanFactory。

                                    第四章 Spring配置详解

4.1 Bean元素

Bean元素:使用该元素描述需要spring容器管理的对象

name属性:给被管理的对象起个名字,获得对象时根据该名称获得对象,可以重复,可以使用特殊字符。

class属性:被管理的对象的完整类名

id属性:与name一摸一样,名称不可重复,不能使用特殊字符。

结论:尽量使用name元素。

4.2 spring创建对象的方式

1.空参构造方式

直接用空参或者默认的构造函数进行构造。

2.静态工厂(了解)

我们不希望由Spring直接调用方法来创建,我们希望由Spring调用静态方法来创建对象,再把对象给我们。

调用UserFactory的createUser方法创建名为user2的对象,放入容器。

3.实例工厂(了解)

Bean元素进阶

scope属性:singletonprototyperequestsession

singleton(默认值):单例的对象,被标识为单例的对象再Spring中只会出现一个实例。

prototype:多例原型,被标识为多例的对象,每次获得才会创建,每次创建时都是新的对象。

request:在web环境下,对象与request生命周期一致。

session:web环境下,对象与session生命周期一致。

绝大多数的取值使用默认值,当spring与struts2整合时,actionBean要配置为多例。struts2在架构上来说,每次都需要一个新的action。

生命周期属性:Bean在创建的时候,如果需要一些初始化的操作要做,可以用Bean指定一个初始化方法,配置一个方法作为生命周期初始化方法,Spring会在对象创建之后立即调用。    init-method

也可配置一个方法作为生命周期的销毁方法,spring容器在关闭并销毁所有容器中的对象之前调用。destroy-method

在user中添加方法

Spring的分模块配置:将所有对象都放在一个配置文件太多了,可以用import元素导入其它配置文件,路径填写是去掉src之前的,只留下后面的。

                                    第五章 spring的属性注入

5.1 set方法注入(重点)

值类型的注入:

对象类型的注入:在user中加入Car对象

5.2 构造函数注入

首先准备一个带有参数的构造,然后书写配置文件

假设出现了参数位置不同的构造函数,我们可以指定index属性的值来规定用哪个函数。

假设出现了有不同类型的参数值,我们可以对type属性进行填写,以使用所需的构造函数。

5.3 p名称空间注入(了解)

首先需要导入p命名空间,复制,到下面,再复制,粘贴覆盖上面的网址,在最后加上/p,最后把xsi改成p即可。

5.4 spel注入(了解)

spel注入:Spring Expression Language表达式语言

可以取其他对象的值,类似于之前的EL

5.5 复杂类型注入

数组注入:

如果数组中只准备注入一个值(对象),直接使用value|ref即可。

如果多个值,在<property>中使用子元素

List注入:

Map类型注入:

Properties类型注入:

猜你喜欢

转载自blog.csdn.net/q610376681/article/details/81265509