SSM 框架集成Redis

修改pom.xml,,導入jar

<!--spring-data-redis版本號-->
<spring.data.redis.version>1.7.1.RELEASE</spring.data.redis.version>
<!-- spring-data-redis集成依賴 -->
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.9.0</version>
</dependency>
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>${spring.data.redis.version}</version>
</dependency>

 

applicationContext-redis.xml

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
    http://www.springframework.org/schema/beans/spring-beans.xsd">

    <bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig">
        <property name="maxIdle" value="300" />
        <property name="maxWaitMillis" value="3000" />
        <property name="testOnBorrow" value="true" />
    </bean>
    <!-- 從外部配置文件獲取redis相關信息 -->
    <bean id="redisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory">
        <property name="hostName" value="${redis.ip}" />
        <property name="port" value="${redis.port}" />
        <property name="database" value="${redis.database}" />
        <property name="poolConfig" ref="poolConfig"/>
    </bean>
    <!-- redis模板配置 -->
    <bean id="redisTemplate" class="org.springframework.data.redis.core.RedisTemplate">
        <property name="connectionFactory" ref="redisConnectionFactory"></property>
        <!-- 對於中文的存儲 需要進行序列化操作存儲  -->
        <property name="keySerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer" />
        </property>
        <property name="valueSerializer">
            <bean class="org.springframework.data.redis.serializer.StringRedisSerializer">
            </bean>
        </property>
    </bean>
</beans>

redis.properties

redis.pool.maxActive=1024
redis.pool.maxIdle=200
redis.pool.maxWait=1000
redis.ip=localhost
redis.port=6379
redis.database=2

web.xml修改配置,引用redis配置

<context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
            classpath*:spring-mybatis.xml,
            classpath*:applicationContext-redis.xml
        </param-value>
</context-param>

java 代碼

@Autowired// redis數據庫操作模板
private RedisTemplate<String, String> redisTemplate;


    @RequestMapping("/doRegister")
    public String doRegister(Model model, @RequestParam(value = "email", required = false) String email,
                             @RequestParam(value = "password", required = false) String password,
                             @RequestParam(value = "phone", required = false) String phone,
                             @RequestParam(value = "nickName", required = false) String nickname,
                             @RequestParam(value = "code", required = false) String code) {

        log.debug("註冊...");
        if (StringUtils.isBlank(code)) {
            model.addAttribute("error", "非法註冊,請重新註冊!");
            return "../register";
        }
        int b = checkValidateCode(code);
        if (b == -1) {
            model.addAttribute("error", "驗證碼超時,請重新註冊!");
            return "../register";
        } else if (b == 0) {
            model.addAttribute("error", "驗證碼不正確,請重新輸入!");
            return "../register";
        }
        User user = userService.findByEmail(email);
        if (user != null) {
            model.addAttribute("error", "該用戶已經被註冊!");
            return "../register";
        } else {
            user = new User();
            user.setNickName(nickname);
            user.setPassword(MD5Util.encodeToHex("salt"+password));
            user.setPhone(phone);
            user.setEmail(email);
            user.setState("0");
            user.setEnable("0");
            user.setImgUrl("/images/icon_m.jpg");
            //郵件激活碼
            String validateCode = MD5Util.encodeToHex("salt"+email + password);
            redisTemplate.opsForValue().set(email, validateCode, 24, TimeUnit.HOURS);// 24小時 有效激活 redis保存激活碼
            userService.regist(user);
            log.info("註冊成功");
            SendEmail.sendEmailMessage(email, validateCode);
            String message = email + "," + validateCode;
            model.addAttribute("message", message);
            return "/regist/registerSuccess";
        }
    }

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章