天天看點

spring3.2.2與xmemcached-1.3.7的優雅內建

之前一直在網上找spring內建memcached的代碼,但是一直沒搞定。這段代碼沒什麼牛逼之處。隻是我們追求的優雅。

仁者見仁,智者見智。任何技術都有他的妙處,此處不讨論spring哲學。

java代碼如下

MemcachedClientBuilder builder = new XMemcachedClientBuilder(AddrUtil.getAddresses("10.10.1.1:11211 10.10.1.2:11211"));
        MemcachedClient memcachedClient = builder.build();
           

但是上一段代碼,如何用spring初始化呢?

<?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:context="http://www.springframework.org/schema/context" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:tx="http://www.springframework.org/schema/tx"
	xsi:schemaLocation="
http://www.springframework.org/schema/beans 
http://www.springframework.org/schema/beans/spring-beans-3.2.xsd 
http://www.springframework.org/schema/context 
http://www.springframework.org/schema/context/spring-context-3.2.xsd 
http://www.springframework.org/schema/tx 
http://www.springframework.org/schema/tx/spring-tx-3.2.xsd 
http://www.springframework.org/schema/aop  
http://www.springframework.org/schema/aop/spring-aop-3.2.xsd">
	<!-- 配置檔案 -->
	<bean id="configproperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
		<property name="locations">
			<list>
				<value>classpath:application.properties</value>
			</list>
		</property>
	</bean>
	<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PreferencesPlaceholderConfigurer">
		<property name="properties" ref="configproperties" />
	</bean>
	<!-- memcached初始化 -->
	<bean id="builder" class="net.rubyeye.xmemcached.XMemcachedClientBuilder">
		<constructor-arg>
			<bean class="net.rubyeye.xmemcached.utils.AddrUtil" factory-method="getAddresses">
				<constructor-arg value="${memached.host}" />
			</bean>
		</constructor-arg>
	</bean>
	<bean id="memcachedClient" class="net.rubyeye.xmemcached.MemcachedClient" factory-bean="builder" factory-method="build" destroy-method="shutdown" />
</beans>