发表于: 2018-01-18 21:50:46

1 641


今天完成的事情:(一定要写非常细致的内容,比如说学会了盒子模型,了解了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的能力日渐增长.


返回列表 返回列表
评论

    分享到