在idea种构建简单的spring项目,默认会下载所许jar
然后创建测试用的service层与dao层,做了一个简单的实现接口中打印方法
在src目录下创建bean.xml
创建一个测试类,输出spring创建的对象
打印结果如下:
关于bean创建的两种规则
beanFactory 提供一种延迟加载的思想来创建bean对象,bean什么时候使用就什么时候创建
applicationContext 只要文件解析完,则立马创建bean对象
示例:
给实现添加构造方法,创建对象则输出一句话
运行测试代码,applicationContext创建bean的方式
使用beanFatory创建bean对象,debug发现加载完消灭了文件后并没有创建bean对象
当使用该bean时,才调用
bean创建的三种方式
1.调用默认的构造方法创建,如果没有则创建失败
2.使用工厂中的方法创建对象
创建成功
3.使用实例工厂创建bean对象
测试成功
bean的作用范围:
可以通过配置的方式调整作用范围 ,配置的属性,bean的scope标签
属性的取值
singleton 单例(默认)
prototype 多例(spring接管struts2的时候,需要配置此值)
request (一次请求和转发)
session (一次会话)
globalsession (一次全局会话 服务器集群使用)
示例:
单例
多例:
bean的生命周期
单例bean生命周期:
测试:(注意多态概念)
所以单例中bean对象随着容器的创建,存在,销毁而相应的变化
多例:
没有实施销毁方法,只有等待垃圾回收机制的触发
关于bean注入DI
构造函数注入
、
测试:
set方法注入
测试:
注解分为以下几种:
1.用于创建bean对象 @Component 相当于bean.xml中的bean标签
xml文件配置
由此注解衍生以下三个注解(继承关系,引用父类Component的功能)只是表现形式不一样,没有其他任何区别
2.用于注入数据(bean对象)
需要注意的时Autowrid不加@Qualifier时 注解的对象只能存在唯一的,而不是存在多个ICustomerDaoImpl 或者使用Resource指定bean的ID
注入基本数据类型
控制bean的作用范围
控制bean的生命周期
其他注解
閱讀更多 十二說IT 的文章