1.Spring有两种bean,一种普通bean,另一种工厂bean(FactoryBean)
2.普通bean:在配置文件中定义bean类型就是返回类型
3.工厂bean:在配置文件中定义bean类型可以和返回类型不一样
第一步 创建类,让这个类作为工厂bean,实现接口FactoryBean
第二步 实现接口里面的方法,在实现的方法中定义返回的bean类型
public class MyBean implements FactoryBeanIOC操作Bean管理(Bean的作用域){ //定义返回bean @Override public course getObject() throws Exception { course course = new course(); course.setCname("abc"); return course; } @Override public Class> getObjectType() { return null; } @Override public boolean isSingleton() { return false; } }
1.在Spring里面,设置bean实例是单实例还是多实例
2.在Spring里面,默认情况下,bean是单实例对象
3.如何设置是单实例还是多实例
(1)在spring配置文件bean标签里面有属性用于设置是单实例还是多实例
(2)scope属性值
第一个值 默认值,singleton表示单实例对象
第二个值prototype ,表示多实例对象
(3)singlteton和prototype区别
第一 singleton是单实例,prototype是多实例
第二 (创建时机不同)设置scope值是singleton时候,加载spring配置文件时候就会创建单实例对象
设置scope值是prototype时候,不是在加载spring配置文件时候创建对象,在调用getBean方法时候创建多实例对象
request
session
1.生命周期
从对象的创建到销毁的过程
2.bean生命周期
(1)通过构造器创建bean实例(无参数构造)
(2)为bean的属性设置值和对其他bean的引用(调用set方法)
(3)调用bean的初始化方法(需要进行配置初始化的方法)
(4)bean可以使用(对象获取到了)
(5)当容器关闭时,调用bean的销毁方法(需要进行配置销毁的方法)
3.演示bean生命周期
public class Orders {
private String oname;
public void setOname(String oname) {
this.oname = oname;
System.out.println("第二步调用set方法设置属性值");
}
public Orders() {
System.out.println("第一步 执行无参构造创建bean实例");
}
public void initMethod(){
System.out.println("第三步 调用bean的初始化方法");
}
public void destroyMethod(){
System.out.println("第五步 执行销毁");
}
}
------------------------------------------------------------------
public void testCollection4(){
ApplicationContext context = new ClassPathXmlApplicationContext("bean4.xml");
Orders orders = context.getBean("orders", Orders.class);
System.out.println("第四步 获取创建bean实例对象");
System.out.println(orders);
//手动让bean实例销毁
((ClassPathXmlApplicationContext)context).close();
}
4.*bean的后置处理器,bean生命周期一共有7步
(1)通过构造器创建bean实例(无参数构造)
(2)为bean的属性设置值和对其他bean的引用(调用set方法)
+把bean实例传递bean吼住处理器的方法postProcessBeforeInitialization
(3)调用bean的初始化方法(需要进行配置初始化的方法)
+把bean实例传递bean后置处理器的方法postProcessAfterInitialization
(4)bean可以使用(对象获取到了)
(5)当容器关闭时,调用bean的销毁方法(需要进行配置销毁的方法)
1.什么是自动装配
(1)根据指定装配规则(属性名或者属性类型),Spring自动将匹配的属性值进行注入
2.演示自动装配过程
(1)根据属性名称自动注入
(2)根据属性类型自动注入
IOC操作Bean管理(外部属性文件)
1.直接配置数据库信息
(1)配置连接池
(2)引入德鲁伊连接池依赖jar包
2.引入外部属性文件配置数据库连接池
(1)创建外部属性文件,properties格式文件,写数据库信息
(2)把外部properties属性文件引入到spring配置文件中
*引入context名称空间
在spring配置文件使用标签引入外部属性文件



