1.html页面轮播图的显示使用三目运算符
<li data-target="#myCarousel" data-slide-to="{{$index}}" class="{{$index==0?'active':''}}" ng-repeat="item in contentList[1]" ></li>
2.对于访问量比较大的页面需要用到缓存技术进行处理,减少数据库访问压力
Spring Data Redis对reids底层开发包(Jedis, JRedis, and RJC)进行了高度封装,RedisTemplate提供了redis各种操作、异常处理及序列化
1.引入Jedis和SpringDataRedis依赖
<!-- 缓存 -->
<dependency>
<groupId>redis.clients</groupId>
<artifactId>jedis</artifactId>
<version>2.8.1</version>
</dependency>
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
<version>1.7.2.RELEASE</version>
</dependency>
2.配置redis
<context:property-placeholder location="classpath*:properties/*.properties" />
<!-- redis 相关配置 -->
<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
<property name="maxIdle" value="${redis.maxIdle}" /> //最大空闲数
<property name="maxWaitMillis" value="${redis.maxWait}" /> //连接时的最大等待毫秒数
<property name="testOnBorrow" value="${redis.testOnBorrow}" />
</bean>
<bean id="JedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory"
p:host-name="${redis.host}" p:port="${redis.port}" p:password="${redis.pass}" p:pool-config-ref="poolConfig"/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="JedisConnectionFactory" />
</bean>
还需要redis-config.properties配置相关参数
3.redis的数据类型
string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)
@Autowired
private RedisTemplate redisTemplate;
使用redisTemplate进行操作(hash)
取:
redisTemplate.boundHashOps("content").get(categoryId);
存:
redisTemplate.boundHashOps("content").put(categoryId, contentList);
删除:
redisTemplate.boundHashOps("content").delete(content.getCategoryId());
页面修改时需要将缓存进行清除
具体使用:
@Autowired
private RedisTemplate redisTemplate;
@Override
public List<TbContent> findByCategoryId(Long categoryId) {
List<TbContent> contentList= (List<TbContent>) redisTemplate.boundHashOps("content").get(categoryId);
if(contentList==null){
System.out.println("从数据库读取数据放入缓存");
//根据广告分类ID查询广告列表
TbContentExample contentExample=new TbContentExample();
Criteria criteria2 = contentExample.createCriteria();
criteria2.andCategoryIdEqualTo(categoryId);
criteria2.andStatusEqualTo("1");//开启状态
contentExample.setOrderByClause("sort_order");//排序
contentList = contentMapper.selectByExample(contentExample);//获取广告列表
redisTemplate.boundHashOps("content").put(categoryId, contentList);//存入缓存
}else{
System.out.println("从缓存读取数据");
}
return contentList;
}
当缓存中不存在就从数据库中取,并将其放入缓存。