目录
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>
第四步测试