发表于: 2016-06-28 21:30:45

0 1847


【操作步骤】
一、springmvc集成memcache
1、配置pom.xml文件,加入jar包:Memcached-Java-Client
2、新建init.properties,配置memcache的连接属性
        memcached.server=123.206.6.60:11211
        memcached.failOver=true
        memcached.initConn=5
        memcached.minConn=10
        memcached.maxConn=250
        memcached.maintSleep=3000
        memcached.nagle=false
        memcached.socketTO=3000
        memcached.aliveCheck=false
3、新建memcached-content.xml文件,配置pool和memcache客户端        
4、新建测试类TestMemcache,测试成功

参考链接:http://blog.csdn.net/truong/article/details/17362371

二、整合SpringMVC-Mybatis-Memcached,并测试登录页面
1、在上面配置的基础上,在applicationContext.xml中添加:
    <bean id="propertyConfigurer"             
       class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
       <property name="locations">
          <list>
              <value>classpath*:properties/db.properties</value>
              <value>classpath*:properties/init.properties</value>
          </list>
       </property>
    </bean>  
    <import resource="classpath:memcached-content.xml"/>
2、新建工具类MemcachedUtils.java
3、在 UserService中添加方法findByPhoneNumber2做测试用
4、在UserServiceImpl中实现findByPhoneNumber2方法,如下:
    public User findByPhoneNumber2(User user)  
    {  
        User user2;  
        // 判断缓存中数据是否存在,如果不存在则添加,存在则读取  
        if (MemcachedUtils.get("user")!= null)  
        {  
            user2 = (User) MemcachedUtils.get("user");  
            System.out.println("本次操作是在缓存中查询数据...");
        }  
        else  
        {  
            user2 = mapper.findByPhoneNumber(user);  
            MemcachedUtils.add("user", user2);  
            System.out.println("本次操作是在数据库中查询数据...");  
        }  
        return user2;  
    }  
5、修改LoginContoller,将登录时调用方法改为findByPhoneNumber2
6、登录测试:成功,第一次从数据库读取数据,第二次从缓存读取数据。

参考链接:http://blog.csdn.net/qq_27456225/article/details/50749010

【错误记录】
1、昨天的问题终于解决了,原来是init.properties属性中memcached.server=123.206.6.60:11211后面多了一个空格,所以始终没连上服务器,太大意了。
2、applicationContext.xml中引入<import resource="classpath:memcached-content.xml"/> 配置后,启动时会报错:
org.springframework.beans.factory.BeanDefinitionStoreException: Invalid bean definition with name 'memcachedPool' defined in class path resource [memcached-content.xml]: Could not resolve placeholder 'memcached.server'
解决方法:连接属性写在一起就可以了,如果分开写的话就要在各个propertyConfigure加上“order”和“ignoreUnresolvablePlaceholders”
   <bean id="propertyConfigurer"                      

       class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
       <property name="locations">
          <list>
              <value>classpath*:properties/db.properties</value>
              <value>classpath*:properties/init.properties</value>
          </list>
       </property>
    </bean> 

参考链接:http://www.lai18.com/content/1255840.html


最近太忙了,恐怕进度要慢一点了。


返回列表 返回列表
评论

    分享到