Redis启动 首先开启redis服务,windows的redis下载在github windows的redis下载地址 ,然后解压出来最后开启那个redis-server。 启动之后显示如下图:
spring配置: 配置 在Spring中也可以通过配置文件redis.properties
配置,但是由于在这个项目中的配置文件已经太多了,所以选择使用类的方式进行配置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 @Configuration public class RedisConfig { @Bean JedisConnectionFactory jedisConnectionFactory ( ) { JedisConnectionFactory connectionFactory = new JedisConnectionFactory(); connectionFactory.setHostName("127.0.0.1" ); connectionFactory.setPort(6379 ); return new JedisConnectionFactory(); } @Bean @Autowired public RedisTemplate<String , Object > redisTemplate (RedisConnectionFactory factory ) { RedisTemplate<String , Object > template = new RedisTemplate<String , Object >(); template.setConnectionFactory(factory); template.setKeySerializer(new StringRedisSerializer()); return template; } }
最后在使用的时候自动装配就可以了。
1 2 @Autowired private RedisTemplate redisTemplate;
单元测试 编写单元测试:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 @ContextConfiguration ("classpath:ApplicationContext.xml" )@RunWith (SpringJUnit4ClassRunner .class )public class TestRedis extends AbstractJUnit4SpringContextTests { @Autowired private RedisTemplate redisTemplate; @Test public void redisTest() throws UnsupportedEncodingException { redisTemplate.opsForValue().set("zhangsan" , "book1" ); if (redisTemplate.hasKey("abc" )){ System .out.println("abc已经存入redis" ); } } }
然后会发现数据已经添加到了这个redis服务器中了。
Mybatis的一些知识点: SqlSesssionFactoryBuilder
:这是一个工厂,主要的作用是创建一些SqlSessioFactory,对于SqlSessionFactory来说,它的职责就是创建每一个SqlSession,然后这个SqlSession的作用则是连接数据库,类似于传统的JDBC的Connection,
SqlSesssionFactoryBuilder这个类主要是创建SqlSessioFactory,在这个类里面可以看到许多方法返回的是一个SqlSessionFactory,其中有一个方法是解析配置文件的方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 public SqlSessionFactory build(Reader reader, String environment, Properties properties) { SqlSessionFactory var5; try { XMLConfigBuilder parser = new XMLConfigBuilder(reader , environment , properties ) ; var5 = this.build(parser.parse() ); } catch (Exception var14) { throw ExceptionFactory . wrapException("Error building SqlSession." , var14 ) ; } finally { ErrorContext . instance() .reset() ; try { reader.close() ; } catch (IOException var13) { ; } } return var5; }
这里的第一个参数是一个流,这个流是将一个properties或者xml文件读取之后供mybatis使用的。 而对于SqlSessionFactory来讲,这是一个接口,其主要的接口方法如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 public interface SqlSessionFactory { SqlSession open Session() ; SqlSession open Session(boolean var1 ) ; SqlSession open Session(Connection var1 ) ; SqlSession open Session(TransactionIsolationLevel var1 ) ; SqlSession open Session(ExecutorType var1 ) ; SqlSession open Session(ExecutorType var1 , boolean var2 ) ; SqlSession open Session(ExecutorType var1 , TransactionIsolationLevel var2 ) ; SqlSession open Session(ExecutorType var1 , Connection var2 ) ; Configuration getConfiguration() ; }
也就是说这个Factory主要负责的是Session的开启来查询数据库
注意的坑: 在mybatyis里面的话若使用对象传参的话需要注意#{XXX}=YYY
,这里的YYY的话是需要和POJO相对应的,否则会提示 there is no getter for property named