栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Spring5框架学习】Bean管理

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Spring5框架学习】Bean管理

工厂Bean
  1. bean的两种类型:普通和工厂(FactoryBean)
    (b站弹幕:病有两种,普通病和工厂病hhh)
  2. 普通bean:在配置文件中定义bean类型就是返回类型
  3. 工厂bean:在配置文件中定义bean类型可以和返回类型不一样
    第一步:创建类,让这个类作为工厂bean,实现接口FactoryBean
    第二步:实现接口里面的方法,在实现的方法中定义返回的bean类型
public class MyBean implements FactoryBean {
    @Override
    public boolean isSingleton() {
        return FactoryBean.super.isSingleton();
    }

    //定义返回bean(Course类型)
    @Override
    public Course getObject() throws Exception {
        Course course=new Course();
        course.setCname("我病里的课程");
        return course;
    }

    @Override
    public Class getObjectType() {
        return null;
    }
}
Bean的作用域
  1. 在spring里面,设置创建bean实例是单实例还是多实例
  2. 在spring里面,默认情况下,bean是单实例对象

    结果,两个book地址相同,即单实例对象
  3. 如何设置单实例还是多实例?
    (1)在spring配置文件bean标签里面scope属性用于设置单实例还是多实例
    (2)scope属性值:默认singleton,表示单实例对象;prototype,表示多实例对象

    结果,两个book地址不同,即多实例对象

    (3)singleton和prototype区别
    第一,singleton单实例,prototype多实例
    第二,设置scope值是singleton时,加载spring配置文件时就会创建单实例对象;设置scope值是prototype时,不是在加载spring配置文件时创建对象,而是在调用getBean方法时创建多实例对象
Bean的生命周期
  1. 声明周期:从对象创建到对象销毁的过程
  2. bean的生命周期
    (1)通过构造器创建bean实例(无参数构造)
    (2)为bean的属性设置值和对其他bean引用(调用set方法)
    (3)调用bean的初始化方法(需要进行配置)
    (4)bean可以使用了(对象获取到了)
    (5)当容器关闭的时候,调用bean销毁的方法(需要进行配置销毁的方法)
  3. bean生命周期演示
//配置文件(初始化和销毁方法需要配置)

    


//1.
public Orders() {
   		System.out.println("第一步 执行无参数构造创建bean实例");
}
//2.
public void setOname(String oname) {
	   this.oname = oname;
	   System.out.println("第二步 调用set方法 注入属性的值");
}
//3.
public void initMethod(){
    	System.out.println("第三步 执行初始化方法");
}
//4.
@Test
public void testAdd(){
		ApplicationContext context=new ClassPathXmlApplicationContext("bean1.xml");      
		Orders orders =context.getBean("orders", Orders.class);
		System.out.println("第四步 获取创建bean实例对象");
		System.out.println(orders);
		((ClassPathXmlApplicationContext)context).close();//手动让bean销毁
}
//5.
public void destroyMethod() {
		System.out.println("第五步 执行销毁方法");
}
  1. bean的后置处理器,bean生命周期有七步
    (1)通过构造器创建bean实例(无参数构造)
    (2)为bean的属性设置值和对其他bean引用(调用set方法)
    (3)把bean实例传递bean后置处理器的方法:postProcessBeforeInitialization()
    (4)调用bean的初始化方法(需要进行配置)
    (5)把bean实例传递bean后置处理器的方法:postProcessAfterInitialization()
    (6)bean可以使用了(对象获取到了)
    (7)当容器关闭的时候,调用bean销毁的方法(需要进行配置销毁的方法)
  2. 添加后置处理器效果演示
    创建类,实现接口BeanPostProcessor,创建后置处理器
public class MyBeanPost implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("初始化之前执行的方法");
        return bean;
    }

    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {
        System.out.println("初始化之后执行的方法");
        return bean;
    }
}

七步运行结果:

IOC操作Bean管理(XML自动装配)
  1. 什么是自动装配?
    根据指定装配规则(属性名称或者属性类型),Spring自动将匹配的属性值进行注入
  2. 自动装配过程演示

    
    
    
  1. 注意:一般不懂XML方式进行自动装配,而是注解方式自动装配
IOC操作Bean管理(外部属性文件)
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/877198.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号