第二章:Spring中的bean
2020-04-01 本文已影响0人
Y_Jaaao
什么是实例化
- Vehicle v1 = new Vehicle();
通常把这条语句的动作称之为创建一个对象,也就是实例化,其实,它包含了四个动作。
1)右边的“new Vehicle”,是以Vehicle类为模板,在堆空间里创建一个Vehicle类对象(也简称为Vehicle对象)。
2)末尾的()意味着,在对象创建后,立即调用Vehicle类的构造函数,对刚生成的对象进行初始化。构造函数是肯定有的。如果你没写,Java会给你补上一个默认的构造函数。
3)左边的“Vehicle v1”创建了一个Vehicle类引用变量,所谓Vehicle类引用,就是以后可以用来指向Vehicle对象的对象引用。
4)“=”操作符使对象引用指向刚创建的那个Vehicle对象。
Bean的配置
- Spring支持2种格式的配置文件:Properties文件、xml文件(最常使用)。通过xml文件来注册并管理bean之间的依赖关系
bean的实例化
- 在Spring中,要想使用容器中的bean,就要实例化bean。实例化bean的3种方式:
1.构造器实例化(最常用):无参构造方法 构造器实例化1.JPG 构造器实例化2.JPG
2.静态工厂方式实例化:要求自己创建一个静态工厂的方法来创建bean的实例
静态工厂方式实例化1.JPG 静态工厂方式实例化2.JPG 静态工厂方式实例化3.JPG3.实例工厂方式实例化:直接创建bean实例的方法。在xml配置文件中,通过factory-bean属性配置一个实例工厂,然后使用factory-method属性确定使用工厂中哪个方法。
实例工厂方式实例化1.JPG 实例工厂方式实例化2.JPG 实例工厂方式实例化3.JPGbean的作用域
bean的作用域.JPG1.singleton作用域(单例)(Spring容器默认的作用域):当bean的作用域为singleton时,Spring容器只会存在一个共享的bean实例。singleton作用域对于无会话状态的bean(如Dao组件、Service组件)来说,是最理想的选择。 singleton.JPG
singleton.JPG
2.prototype作用域(原型):对需要保持会话状态的bean(如struts2的Action类)应该使用prototype作用域。在使用该作用域时,spring容器会为每个对该bean的请求创建一个新的实例
-
要将Bean定义为prototype作用域,只需在配置文件中将<bean>元素的scope属性值设置为prototype即可
prototype.JPG
bean的生命周期
-
常在bean的postinitiation(初始化后)和predestruction(销毁前)执行一些相关操作
生命周期.JPG
Life.JPG
xml.JPG
bean的装配方式(即bean依赖注入的方式)
-
1. 基于xml的装配
(1) 设值注入
设值注入.JPG
(2) 构造注入
构造注入.JPG
user.JPG
xml.JPG
test.JPG
-
2. 基于注释(Annotation)的装配(最常用)
Annotation.JPG
UserDao.JPG
Impl.JPG
UserService.JPG
ServiceImpl.JPG
Controller.JPG
xml.JPG
test.JPG -
3. 自动装配
自动装配.JPG