1.分页(pageHelper)总结:
pageHelper.startPage("当前页","当前夜的大小");
List<TbUser>list=xxxService.queryAll();
PageInfo<TbUser> info=new PageInfo<>(list);
model.Attribute("info",info);
2.在这个项目中,redis 1)缓存查询出来的的数据
2.)单点登录的时候需要将用户信息保存到redis中,前台页面通过保存在cookie的token值来获取到用户信息,从而更新页面。
3)用户加入购物车的时候也用到了redis
redis的五种数据类型:string,hash,list,set,SortedSet
String(key,value) :decr:减少,incr:增加,keys *:显示有多少个key。
hash(key,field,value):hset hash1 field 1;hget hash1 field;
hkeys hash1:查询有全部的key值;hvals hash1:查询全部的value值;
hgetall hash1:获取key,value的值
lpush:lpush list1 1 2 3 4 5 6 ;lrange list1 0,-1;
redis的数据持久化:1)通过快照的形式是将数据保存在磁盘中,以二进制的形式存储
2)通过aof文件但也会影响性能。
在该项目中:
使用jedisClient客户端工具:在使用jedisClient工具之前,需要与spring容器的配置
<bean id="jedisClientPool" class="cn.e3mall.common.jedis.JedisClientPool">
<property name="jedisPool" ref="jedisPool"></property>
</bean>
<bean id="jedisPool" class="redis.clients.jedis.JedisPool">
<constructor-arg name="host" value="127.0.0.1"></constructor-arg>
<constructor-arg name="port" value="6379"></constructor-arg>
</bean>
1) 第一次查询商品的时候需要把商品添加到redis缓存中:
jedisClient.set(token,JsonUtils.ObjectToJson(list.get(0));
设置过期时间
jedisClient.expire(token,3600);
第二次查询只需要将缓存中的数据取出来
jedisClient.get(token);
3.activemq消息中间件的使用
发送者:通过从容器中获取一个jmsTemplate对象,可以发送消息,发送的消息可以是点对点queue和一对多topic,当使用点对点队列的时候,当提供者发送消息后,一旦消费者接受,消息就会没有。通过调用jemtemplate的send方法,通过session.createTextMessage(itemId+"")携带信息来进行发送消息。消费者进行接受消息通过在spring容器中配置MessageListerer的事件监听,通过TextMessage获取到message信息。在该工程使用一对多的topic,就是一个提供者多个消费者。比如:商品添加这个消息的提供者,消费者可能是商品添加同步到缓存。