Bean的实例化方法

目录

1.工厂模式通常有三种形态:

2.简单工厂

2.1 静态工厂

2.1通过factory-bean实例化

2.3通过FactoryBean接口实例化

3.测试 关于容器的使用

3.1获得spring文件方式 

3.2getBean方式

4.关闭容器


1.工厂模式通常有三种:

  • 第一种:简单工厂模式(Simple Factory):不属于23种设计模式之一。简单工厂模式又叫做:静态 工厂方法模式。简单工厂模式是工厂方法模式的一种特殊实现。
  • 第二种:工厂方法模式(Factory Method):是23种设计模式之一。
  • 第三种:抽象工厂模式(Abstract Factory):是23种设计模式之一

2.简单工厂

2.1 静态工厂

第一步:定义一个Bean

@Data
@NoArgsConstructor
@AllArgsConstructor
public class User {
    private Integer id ;
    private  String name ;
}

第二步:定义具体工厂类,工厂类中定义静态实例方法

public class singUserFactory {
    public static User creatUser(Integer id , String name){
        return new User(id,name);
    }
}

第三步:在Spring配置文件中指定创建该Bean的方法(使用factory-method属性指定)

  <bean id="static" class="com.hu.factory.singUserFactory" factory-method="creatUser">
        <constructor-arg name="id" value="1"></constructor-arg>
        <constructor-arg name="name" value="louie"></constructor-arg>
    </bean>

第四步:编写测试程序

 @Test
    public  void  testUser(){
        ApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring-config.xml");
        User bean = applicationContext.getBean("static", User.class);
        System.out.println(bean);
    }

2.1通过factory-bean实例化

这种方式本质上是:通过工厂方法模式进行实例化。

第一步:定义一个Bean

第二步:定义具体工厂类,工厂类中定义实例方法 (不是静态的 static)

第三步:在Spring配置文件中指定factory-bean以及factory-method

<bean id="factoruser" class="com.hu.factory.singUserFactory"></bean>
<bean id="creatUser" factory-bean="factoruser" factory-method="creatUser"></bean>

第四步:编写测试程序

2.3通过FactoryBean接口实例化

在Spring中,当你编写的类直接实现FactoryBean接口之后,factory-bean不需要指定了,factory-method也不需要指定了。

factory-bean会自动指向实现FactoryBean接口的类,factory-method会自动指向getObject()方法。

第一步:定义一个Bean

第二步:编写一个类实现FactoryBean接口

public class UserFactory implements FactoryBean {
    @Override
    public Object getObject() throws Exception {
        return new User();
    }
    @Override
    public Class<?> getObjectType() {
        return null;
    }
}

第三步:在Spring配置文件中配置FactoryBean

  <bean id="UserFactor" class="com.hu.factory.UserFactory"></bean>

第四步测试

3.测试 关于容器的使用

3.1获得spring文件方式 

 

3.2getBean方式

4.关闭容器

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值