未分类
2020-11-29 16:00:35
1822677238@qq.com
手机扫码查看
2020javaweb框架教程之spring的Bean细节
1.Bean创建原理
反射:加载类对象,默认调用无参构造,创建对象。
<bean class="bean.Users" id="users" />
public void classpaths(){//反射
Class<?> u=null;
try {
u = Class.forName("bean.Users");
Constructor<?> constructor = u.getConstructor();
Users o = (Users) constructor.newInstance();
System.out.println(o);
} catch (Exception e) {
e.printStackTrace();
}
}
2.Bean创建模式
singleton:单例–>默认
在同一个spring工厂中,一个Bean只会创建一个对象。
多次getBean(),或多次注入使用的是同一个对象。
随工厂创建而创建,随工厂关闭而销毁。
prototype:多例(原型)
<bean class="bean.Users" id="users" scope="prototype"/>
每次getBean(),或多次注入都会重新创建对象。
不随工厂创建而创建,不随工厂关闭而销毁
被用到时才会创建对象。
对象的状态:对象的成员变量值 即 对象的状态
无状态:不同的用户,不同的请求,对象的属性值不会发生改变(单例)
如:dao、service、servlet
有状态:不同的用户,不同的请求,对象的属性值会发生改变(多例)
3.生命周期
单例Bean:构造(工厂启动)–>set–>init–>User–>destory(销毁)
多例Bean:获取时才创建–>set–>init–>User–>不会随工厂关闭而销毁



发表回复