之前一直在網上找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>