IOC容器-Bean管理(基于xml)

IOC操作Bean管理(FactoryBean)

1.Spring有两种bean,一种普通bean,另一种工厂bean(FactoryBean)

2.普通bean:在配置文件中定义bean类型就是返回类型
3.工厂bean:在配置文件中定义bean类型可以和返回类型不一样
第一步 创建类,让这个类作为工厂bean,实现接口FactoryBean
第二步 实现接口里面的方法,在实现的方法中定义返回的bean类型

public class MyBean implements FactoryBean<course>{
//定义返回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;
    }
}

IOC操作Bean管理(Bean的作用域)

1.在Spring里面,设置bean实例是单实例还是多实例
2.在Spring里面,默认情况下,bean是单实例对象
3.如何设置是单实例还是多实例
(1)在spring配置文件bean标签里面有属性用于设置是单实例还是多实例
(2)scope属性值
第一个值 默认值,singleton表示单实例对象
第二个值prototype ,表示多实例对象

 <bean id="book" class="com.wyt.spring5.collectiontype.Book" scope="prototype">
        <property name="list" ref="bookList"></property>
    </bean>

(3)singlteton和prototype区别
第一 singleton是单实例,prototype是多实例
第二 (创建时机不同)设置scope值是singleton时候,加载spring配置文件时候就会创建单实例对象
设置scope值是prototype时候,不是在加载spring配置文件时候创建对象,在调用getBean方法时候创建多实例对象
request
session

IOC操作Bean管理(Bean的生命周期)

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的销毁方法(需要进行配置销毁的方法)

IOC操作Bean管理(xml自动装配)

1.什么是自动装配

(1)根据指定装配规则(属性名或者属性类型),Spring自动将匹配的属性值进行注入
2.演示自动装配过程
(1)根据属性名称自动注入
(2)根据属性类型自动注入

<!--实现自动装配
        bean标签属性autowire,配置自动装配
        autowire属性常用两个值:
                byName根据属性名注入,注入值bean的id值和类属性名称一样
                byType根据属性类型注入
-->
    <bean id="emp" class="com.wyt.spring5.autowire.Emp" autowire="byName">
<!--        <property name="dept" ref="dept"></property>-->
    </bean>
    <bean id="dept" class="com.wyt.spring5.autowire.Dept"></bean>

IOC操作Bean管理(外部属性文件)

1.直接配置数据库信息
(1)配置连接池
(2)引入德鲁伊连接池依赖jar包

<!--直接配置连接池-->
    <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"></property>
        <property name="url" value="jdbc:mysql://localhost:3306/userDb"></property>
        <property name="username" value="root"></property>
        <property name="password" value="root"></property>
    </bean>

2.引入外部属性文件配置数据库连接池
(1)创建外部属性文件,properties格式文件,写数据库信息
在这里插入图片描述

(2)把外部properties属性文件引入到spring配置文件中
*引入context名称空间
在这里插入图片描述
在spring配置文件使用标签引入外部属性文件

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值