初始化JedisCluster學習Spring FactoryBean的用法
阿新 • • 發佈:2018-12-11
FactoryBean
Spring3.0開發,FactoryBean開始支援泛型,介面宣告改為FactoryBean的形式。
T getObject() throws Exception;
Class<?> getObjectType();
boolean isSingleton();
- 返回由FactoryBean建立的Bean例項。如果isSingleton()返回true,則該例項會放到Spring容器的單例項快取池中。
- 確認由FactoryBean建立的Bean的作用域是Singleton還是prototye
- 返回FactoryBean建立Bean的型別
有FactoryBean的好處:
一般情況下,Spring通過反射機制利用<bean>
InitializingBean
實現InitializingBean介面的作用 afterPropertiesSet 和init-method之間的執行順序是afterPropertiesSet 先執行,init-method 後執行。從BeanPostProcessor的作用,可以看出最先執行的是postProcessBeforeInitialization,然後是afterPropertiesSet,然後是init-method,然後是postProcessAfterInitialization
初始化JedisCluster Bean
private static JedisCluster jedisCluster = ((JedisCluster)SpringContextHolder.getBean("jedisCluster"));
好處
- 完成Jedis初始化時有埠的校驗邏輯
- 利用了Spring天然的單例模式Singleton,在容器啟動的時候例項化Singleton的Bean