Spring-Bean实例化三种的方式

Bean实例化三种方式

  • 无参构造实例化(重点)
  • 工厂静态方法实例化
  • 工厂实例方法实例化

工厂静态方法实例化

1.编写接口

package com.my;

public interface UserDao {
    public void  save();
}

2.接口实现方法

public class UserDaoImpl implements UserDao {
    public UserDaoImpl() {
        System.out.println("UserImpl创建.....");
    }
    public  void init(){
        System.out.println("初始化方法.....");
    }
    public void destory(){

        System.out.println("销毁方法");
    }
    public void save() {
        System.out.println("save running.....");
    }
}

3.创建静态工厂

public class StaticFactory {
    public static UserDao getUserDao(){
        return new UserDaoImpl();
    }
}

3.编写配置文件

 <bean id="UserDao" class="com.my.factory.StaticFactory" factory-method="getUserDao"></bean>

4.测试

public class UserDemo {
    @Test
    public  void mytest(){
        ApplicationContext application = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserDao userDao1 = (UserDao) application.getBean("UserDao");
        System.out.println(userDao1);


    }
}

5.测试结果

![](https://img2020.cnblogs.com/blog/2069956/202111/2069956-20211126100743843-366255724.png)

6.测试动态
1.编写测试类

public class DynamicFactory {
    public UserDao getUserDao() {
        return new UserDaoImpl();
    }
}

2.编写测试文件

   <bean id="factory" class="com.my.factory.DynamicFactory"></bean>
    <bean id="UserDao" factory-bean="factory" factory-method="getUserDao"></bean>

3.写结果

posted @ 2021-11-26 11:09  不会笑的孩子  阅读(37)  评论(0编辑  收藏  举报