在测试用例中,指定初始化方式 @ContextConfiguration(classes = RedisConf.class, initializers = ConfigFileApplicationContextInitializer.class)
@RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(classes = RedisConf.class, initializers = ConfigFileApplicationContextInitializer.class) public class RedisTest { @Test public void testRedis() { String ans = JedisClient.getStr("hello"); System.out.println(ans); } }
对应的配置类
@Configuration @PropertySource(value = "classpath:application.yml") public class RedisConf { @Autowired private Environment environment; @Autowired public RedisTemplate<String, String> redisTemplate(RedisConnectionFactory redisConnectionFactory) { RedisTemplate<String, String> redisTemplate = new RedisTemplate<>(); redisTemplate.setConnectionFactory(redisConnectionFactory); DefaultStrSerializer serializer = new DefaultStrSerializer(); redisTemplate.setValueSerializer(serializer); redisTemplate.setHashValueSerializer(serializer); redisTemplate.setKeySerializer(serializer); redisTemplate.setHashKeySerializer(serializer); redisTemplate.afterPropertiesSet(); JedisClient.register(redisTemplate); return redisTemplate; } @Bean public RedisConnectionFactory redisConnectionFactory() { LettuceConnectionFactory fac = new LettuceConnectionFactory(); fac.getStandaloneConfiguration().setHostName(environment.getProperty("spring.redis.host")); fac.getStandaloneConfiguration().setPort(Integer.parseInt(environment.getProperty("spring.redis.port"))); fac.getStandaloneConfiguration() .setPassword(RedisPassword.of(environment.getProperty("spring.redis.password"))); fac.afterPropertiesSet(); return fac; } }