如下
<bean id="sockIOPool4BIP" class="com.danga.MemCached.SockIOPool" factory-method="getInstance" init-method="initialize" destroy-method="shutDown" p:initConn="${sockIOPool.initConn}" p:minConn="${sockIOPool.minConn}" p:maxConn="${sockIOPool.maxConn}" p:maintSleep="${sockIOPool.maintSleep}" p:nagle="${sockIOPool.nagle}" p:socketTO="${sockIOPool.socketTO}" p:servers="${sockIOPool.servers}" p:hashingAlg="${sockIOPool.hashingAlg}"> <constructor-arg value="${memcachedClient.instance}" /> </bean>
1.class属性的值不再是Bean实例的实现类,而是生成Bean实例的静态工厂类。(实际情况这也可能是同一个类,如上所示)。
2.使用factory-method属性指定生产bean实例的静态工厂方法。
3.如果静态工厂方法需要参数,使用<constructor-arg .../>元素指定静态工厂方法的参数,此时<constructor-arg .../>就不再是类的构造函数的参数了。
当指定spring用静态工厂方法创建bean实例的时候,spring 会根据配置文件,找到对应的静态工厂类,运用反射,调用静态工厂方法,把返回的结果作为bean实例。在这个过程中,其实spring不负责创建bean实例,而是由用户提供的静态工厂类负责创建的。
但创建Bean实例后,spring依然可以管理bean实例的依赖关闭,包括其注入所需的依赖关系和生命周期等。
详细参考:
http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-class-static-factory-method
http://docs.spring.io/spring/docs/3.0.x/spring-framework-reference/html/beans.html#beans-factory-properties-detailed
相关推荐
Spring Bean创建初始化流程
本篇文章主要介绍了Spring 中如何控制2个bean中的初始化顺序,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
3、通过spring的xml bean配置或bean注解指定初始化方法,如下面实例的initMethod方法通过@bean注解指定。 销毁的时候实现的方法 1、通过java提供的@PreDestroy注释; 2、通过实现spring提供的DisposableBean接口,并...
初始化后可访问Spring管理的Bean
主要介绍了Spring实战之使用静态工厂方法创建Bean操作,结合实例形式分析了静态工厂方法创建Bean的相关实现步骤与操作注意事项,需要的朋友可以参考下
下面小编就为大家带来一篇浅谈spring容器中bean的初始化。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
主要介绍了Spring Bean的初始化和销毁,结合实例形式详细分析了Spring Bean的初始化和销毁相关配置、使用方法及操作注意事项,需要的朋友可以参考下
调用实例工厂方法创建bean,与调用静态工厂方法创建bean 的用法基本相似。 区别如下: ·调用实例工厂方法创建bean 时,必须将实例工厂配置成bean 实例。 而静态工厂方法则无须配置工厂bean。 ·调用实例工厂方法...
Spring IOC 04 配置通过静态工厂方法创建的bean、实例工厂创建的bean、FactoryBean (1)bean的创建默认就是框架利用反射new出来的bean实例; (2)工厂模式:工厂帮我们创建对象,有一个专门帮我们创建对象的类,这...
spring的初始化,可以让初学者了解soring的开发过程,让开发轻松进入开发大门。
通过实例工厂方法和静态工厂方法实例化spring bean的例子。
NULL 博文链接:https://bijian1013.iteye.com/blog/2374256
Spring源码学习六:bean初始化1
SSH笔记-静态工厂方法配置bean和实例工厂方法配置bean
解决方法1 使用@Autowired的方式注入 必须在类上加@Component。我是用的这种 @Component public class KlineDataUtil { private static RedisService redisService; @Autowired public void set(RedisService ...
spring bean配置 运行环境:eclipse 构建工具:maven 不提供maven构建,maven用来解决jar包的依赖
Spring的三种实例化Bean的方式
spring动态向容器中添加bean和删除指定bean,不需要重启应用
spring运行过程中动态注册bean,代码实例
Spring的IoC容器初始化源码解析,包括资源定位、加载、注册3个过程