Spring bean(静态工厂实例化)
程序员文章站
2022-03-03 11:24:30
...
静态工厂实例化
- 在使用静态工厂实例化Bean时要求开发者在工厂类中创建一个静态方法来创建Bean的实例。在配置Bean时,class属性指定静态工厂类,同时还需要使用factory-method属性指定工厂类中的静态方法
- **1.创建工厂类BeanStaticFactory,该类有一个静态方法来实例化对象 **
package instance;
public class BeanClass {
public String message;
public BeanClass(){
message="构造方法实例化bean";
}
public BeanClass(String s){
message=s;
}
}
package instance;
//静态工厂实例化
public class BeanStaticFactory {
private static BeanClass beanIstance=new BeanClass("调用静态工厂方法实例bean");
public static BeanClass createInstance(){
return beanIstance;
}
}
2.编写配置文件applicationContext.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:p="http://www.springframework.org/schema/p"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans ">
<!--静态工厂方法实例化Bean,createInstance为静态工厂类BeanStaticFactory中的静态方法-->
<bean id="staticStaticFactory" class="instance.BeanStaticFactory"
factory-method="createInstance"/>
</bean>
3.添加测试代码
package test;
import instance.BeanClass;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class TestInstance {
public static void main(String[] args) {
//初始化Spring容器applicationContext,加载配置文件
ApplicationContext appCon=new ClassPathXmlApplicationContext("applicationContext");
// 测试构造方法实例化Bean
BeanClass b2= (BeanClass) appCon.getBean("staticStaticFactory");
System.out.println(b2+b2.message);
}
}
推荐阅读
-
通过实例解析spring bean之间的关系
-
spring源码分析系列5:ApplicationContext的初始化与Bean生命周期
-
Spring启动后获取所有拥有特定注解的Bean实例代码
-
02Spring基于xml的IOC配置--实例化Bean的三种方式
-
JSP Spring 自动化装配Bean实例详解
-
Spring jdbc中数据库操作对象化模型的实例详解
-
java Freemarker页面静态化实例详解
-
FastJson序列化自定义返回字段,普通类从spring容器中获取bean
-
Spring高级装配,Profile的使用,条件化Bean,解决歧义性
-
Spring Boot整合静态化技术FreeMarker