发表于: 2018-01-18 21:50:46
1 642
今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了Margin)
还是对任务6的一些东西进行收尾和处理.
首先是工具类,因为我们使用的是spring这个框架,自动注入这个理念应该说很清楚了.
这是我昨天的工具类的写法:
其实我这个写法是有问题的,
第一:
使用@Autowired注入的属性是不允许是静态的,静态会导致注入失败.
第二:
修改为非静态之后,新的风暴出现了.
这样修改之后RedisTemplate的确可以自动注入了, 但是用自动注入的这个redis来获取一个Hash控制器就会出错.
因为工具类本身也是注入到了spring里面,所以这个HashOperations也应该添加到spring里面,才能和RedisUtil这个类同时装配.
具体操作需要在配置文件中修改:
这是我之前在IOC小课堂中讲过的实例工厂方式,
<!--使用实例工厂方式装载hashOperationss对象-->
<bean id="hashOperations" factory-bean="redisTemplate" factory-method="opsForHash"/>
<bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
<property name="connectionFactory" ref="connectionFactory"/>
其他的Operations也可以这样加载.
然后是另外分享一下关于负载均衡验证登陆的另外一种思路,
nginx有一个ip识别功能,他会将一个ip对服务器的访问固定在某一个端口而不进行来回切换,这个样就保证了登陆状态的保留,也达到了分流效果,不过有一点就是如果单个ip疯狂访问也容易给服务器造成压力.
很简单,加上ip_hash即可.
另外眼瞎一波:
package com.service;
import com.bean.GoodStudent;
import com.dao.GoodStudentDao;
import com.util.RedisUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @author Arike
* Create_at 2017/12/28 16:07
*/
@Service
public class GoodStudentServiceImpl implements IGoodStudentService {
@Autowired
GoodStudentDao goodStudentDao;
@Autowired
RedisUtil redisUtil;
@Override
@SuppressWarnings("unchecked")
public List<GoodStudent> selectAll() {
if(redisUtil.haskey("gs","sa")){
return (List<GoodStudent>) redisUtil.get("gs","sa");
}
System.out.println("1111111111");
redisUtil.put("gs","sa",goodStudentDao.selectAll(),0L);
return (List<GoodStudent>) redisUtil.get("gs","sa");
}
@Override
public Integer count() {
if(redisUtil.haskey("gs","ct")){
return (Integer) redisUtil.get("gs","ct");
}
redisUtil.put("gs","ct",goodStudentDao.count(),0L);
return (Integer) redisUtil.get("gs","ct");
}
@Override
public Integer countGood() {
if(redisUtil.haskey("gs","cg")){
return (Integer) redisUtil.get("gs","cg");
}
redisUtil.put("gs","cg",goodStudentDao.countGood(),0L);
return (Integer) redisUtil.get("gs","cg");
}
}
所以数据全部加入缓存.
明天计划的事情:(一定要写非常细致的内容)
带娃
遇到的问题:(遇到什么困难,怎么解决的)
null
收获:(通过今天的学习,学到了什么知识)
排除bug的能力日渐增长.
评论