关于spring的概述与简单示例1

在idea种构建简单的spring项目,默认会下载所许jar

关于spring的概述与简单示例1

然后创建测试用的service层与dao层,做了一个简单的实现接口中打印方法

关于spring的概述与简单示例1

关于spring的概述与简单示例1

在src目录下创建bean.xml

关于spring的概述与简单示例1

创建一个测试类,输出spring创建的对象

关于spring的概述与简单示例1

打印结果如下:

关于spring的概述与简单示例1

关于bean创建的两种规则

beanFactory 提供一种延迟加载的思想来创建bean对象,bean什么时候使用就什么时候创建

applicationContext 只要文件解析完,则立马创建bean对象

示例:

给实现添加构造方法,创建对象则输出一句话

关于spring的概述与简单示例1

运行测试代码,applicationContext创建bean的方式

关于spring的概述与简单示例1

使用beanFatory创建bean对象,debug发现加载完消灭了文件后并没有创建bean对象

关于spring的概述与简单示例1

当使用该bean时,才调用

关于spring的概述与简单示例1

bean创建的三种方式

1.调用默认的构造方法创建,如果没有则创建失败

关于spring的概述与简单示例1

关于spring的概述与简单示例1

2.使用工厂中的方法创建对象

关于spring的概述与简单示例1

关于spring的概述与简单示例1

创建成功

关于spring的概述与简单示例1

3.使用实例工厂创建bean对象

关于spring的概述与简单示例1

关于spring的概述与简单示例1

测试成功

关于spring的概述与简单示例1

bean的作用范围:

可以通过配置的方式调整作用范围 ,配置的属性,bean的scope标签

属性的取值

singleton 单例(默认)

prototype 多例(spring接管struts2的时候,需要配置此值)

request (一次请求和转发)

session (一次会话)

globalsession (一次全局会话 服务器集群使用)

示例:

单例

关于spring的概述与简单示例1

多例:

关于spring的概述与简单示例1

bean的生命周期

单例bean生命周期:

关于spring的概述与简单示例1

关于spring的概述与简单示例1

测试:(注意多态概念)

关于spring的概述与简单示例1

所以单例中bean对象随着容器的创建,存在,销毁而相应的变化

多例:

关于spring的概述与简单示例1

关于spring的概述与简单示例1

没有实施销毁方法,只有等待垃圾回收机制的触发

关于bean注入DI

关于spring的概述与简单示例1

构造函数注入

关于spring的概述与简单示例1

关于spring的概述与简单示例1

测试:

关于spring的概述与简单示例1

set方法注入

关于spring的概述与简单示例1

关于spring的概述与简单示例1

测试:

关于spring的概述与简单示例1

注解分为以下几种:

1.用于创建bean对象 @Component 相当于bean.xml中的bean标签

关于spring的概述与简单示例1

xml文件配置

关于spring的概述与简单示例1

由此注解衍生以下三个注解(继承关系,引用父类Component的功能)只是表现形式不一样,没有其他任何区别

关于spring的概述与简单示例1

2.用于注入数据(bean对象)

关于spring的概述与简单示例1

关于spring的概述与简单示例1

需要注意的时Autowrid不加@Qualifier时 注解的对象只能存在唯一的,而不是存在多个ICustomerDaoImpl 或者使用Resource指定bean的ID

关于spring的概述与简单示例1

注入基本数据类型

关于spring的概述与简单示例1

控制bean的作用范围

控制bean的生命周期

关于spring的概述与简单示例1

其他注解


分享到:


相關文章: