ssm+redis整合

一、首先eclipse搭建好Maven环境,如何不会搭建可以参考eclipse配置maven

二、搭建好SSM框架

三、在pom.xml中引入java里redis的依赖(jedis)

<!--spring-data-redis-->
<dependency>
    <groupId>org.springframework.data</groupId>
    <artifactId>spring-data-redis</artifactId>
    <version>1.1.0.RELEASE</version> 
</dependency>
<dependency>
    <groupId>redis.clients</groupId>
    <artifactId>jedis</artifactId>
    <version>2.1.0</version>
</dependency>

注意:若报以下错误,是因为Jedis版本与spring版本不适配的问题

Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionF
actory' defined in class path resource [applicationContext.xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: redis.clients.jedis.JedisShardInfo.se tTimeout(I)V Exception in thread "main" org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'connectionFactory' defined in class path resource [applicationContext. xml]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: redis.clients.jedis.JedisShardInfo.setTimeout(I)V

经本人运行配置后
spring 3.24 、spring-data-redis1.1.0 、 Jedis 2.1.0 适配,如果还是报该错误,请到网上查找其他适配版本,本人也是调试了很多版本才配置成功。

四、在spring配置文件中配置reids
本人是在spring-mybatis.xml中加入配置,读者可以单独创建一个spring-redis.xml单独配置。

 <!-- jedis -->
<!-- redis配置 -->
    <!-- redis连接池 -->
       <bean id="jedisPoolConfig" class="redis.clients.jedis.JedisPoolConfig">
            <property name="maxIdle" value="300" />
            <property name="minIdle" value="100"></property>
            <!-- <property name="maxTotal" value="500" /> -->
            <property name="maxWait" value="3000" />
            <property name="testOnBorrow" value="true"/>
        </bean> 
        
        <!-- redis连接工厂 -->
      <bean id="jedisConnectionFactory" class="org.springframework.data.redis.connection.jedis.JedisConnectionFactory" destroy-method="destroy">          
             <property name="hostName" value="${redis.hostName}"></property> 
             <property name="port" value="${redis.port}"></property>
             <property name="password" value="${redis.password}"></property>  
              <property name="poolConfig" ref="jedisPoolConfig"></property>
        </bean> 
        
 <!-- redis操作模板,这里采用尽量面向对象的模板 -->
      <bean id="jedisTemplate" class="org.springframework.data.redis.core.RedisTemplate"> 
             <property name="connectionFactory" ref="jedisConnectionFactory"></property>
              <property name="keySerializer"> 
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> 
               </property> 
       <property name="hashKeySerializer"> 
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> 
       </property> 
       <property name="valueSerializer"> 
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> <!--JdkSerializationRedisSerializer  -->
       </property> 
       <property name="hashValueSerializer"> 
        <bean class="org.springframework.data.redis.serializer.StringRedisSerializer"/> 
       </property> 

            <!--  <property name="enableTransactionSupport" value="true"></property>  -->
         </bean> 

五、创建redis工具类
RedisTemplateUtil.java

import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.annotation.Resource;
import org.springframework.data.redis.core.HashOperations;
import org.springframework.data.redis.core.ListOperations;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.data.redis.core.SetOperations;
import org.springframework.data.redis.core.ValueOperations;
import org.springframework.stereotype.Service;


public class RedisTemplateUtil {
	@Resource
	private RedisTemplate<String, Object> redisTemplate;

	public void set(String key, Object value) {
		ValueOperations<String, Object> valueOperations = redisTemplate
				.opsForValue();
		valueOperations.set(key, value);
	}

	public Object get(String key) {
		return redisTemplate.opsForValue().get(key);
	}

	public void setList(String key, List<?> value) {
		ListOperations<String, Object> listOperations = redisTemplate
				.opsForList();
		listOperations.leftPush(key, value);
	}

	public Object getList(String key) {
		return redisTemplate.opsForList().leftPop(key);
	}

	public void setSet(String key, Set<?> value) {
		SetOperations<String, Object> setOperations = redisTemplate.opsForSet();
		setOperations.add(key, value);
	}

	public Object getSet(String key) {
		return redisTemplate.opsForSet().members(key);
	}

	public void setHash(String key, Map<String, ?> value) {
		HashOperations<String, Object, Object> hashOperations = redisTemplate
				.opsForHash();
		hashOperations.putAll(key, value);
	}

	public Object getHash(String key) {
		return redisTemplate.opsForHash().entries(key);
	}

	public void delete(String key) {
		redisTemplate.delete(key);
	}
}

六、测试

@Resource
	private RedisTemplate<String, Object> redisTemplate;
	
    public void test(){
        	RedisTemplateUtil redisTemplateUtil = new RedisTemplateUtil();//可以可不用
        	List<Vt_Email> list = new ArrayList<Vt_Email>();
        	  for (int i = 0; i < 2; i++) {
        	  Vt_Email vte = new Vt_Email();
        	  vte.setId(i);
        	  vte.setEmailName("generaterfq"+i);
        	  vte.setStatus("sent"+i);
        	  vte.setCreateBy("administrator"+i);
        	  vte.setRemark("");
        	  vte.setRfqNo("test"+i);*/
        	 list.add(vte);  
          redisTemplate.opsForList().leftPush("test2",vte.toString()); 
        	 }
        System.out.println(redisTemplate.opsForList().leftPop("test2"));
        List<Vt_Email> list2 = (List<Vt_Email>)      redisTemplate.opsForList().leftPop("test2");
        	redisTemplate.delete("test2");
        	 redisTemplateUtil.setList("testlist", list);
     
        	
          }

(待完善)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
随着互联网应用的快速发展,Java EE成为当下互联网开发中最为流行的开发语言之一。而在Java EE开发中,轻量级框架的整合是必不可少的一部分。其中SSM框架是最先被广泛应用的一种框架,它是由Spring、SpringMVC和MyBatis三个框架整合而成。此外,Spring框架也是Java EE开发中常重要的一部分,它主要提供了全部企业级应用的核心技术和API,包括依赖注入、控制反转等。 对于如何提高web应用的性能,Redis是一个常强大的缓存解决方案。它是一种内存数据存储系统,能提供快速读取数据、支持分布式和高可用性等特性。当然,Redis的应用需要和Java EE整合,才能更好地发挥其功能。 最近几年,微服务架构也成为Java EE中常关注的技术趋势。微服务架构是一种面向服务的架构,它将一个应用程序拆分成若干个服务,这些服务之间通过API方式进行互相通信。微服务架构可以执行部署,提高应用可扩展性,从而更好地满足应用程序的要求和需求。 最后,在Java EE开发中,PDF文档的生成和处理也是一个常重要的任务。开发人员可以使用PDF框架来生成各种类型的PDF文档,满足企业应用的需求和要求。 总的来说,以上几种Java EE互联网轻量级框架整合开发技术都常重要,可以提高应用程序的开发效率和可用性,同时也能提高web应用程序在互联网中的性能和可扩展性,提供更好的用户体验。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值