Yml配置文件加载问题
在resource目录下有一个application.yml文件,希望是通过@PropertySource注解,将配置文件数据读取到Environment中,然而调试发现数据始终读取不到,google之后,记录下解决方法
在测试用例中,指定初始化方式 @ContextConfiguration(classes = RedisConf.class, initializers = ConfigFileApplicationContextInitializer.class)
| 12
 3
 4
 5
 6
 7
 8
 9
 
 | @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);
 }
 }
 
 | 
对应的配置类
| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 
 | @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;
 }
 }
 
 | 
II. 其他
一灰灰的个人博客,记录所有学习和工作中的博文,欢迎大家前去逛逛
2. 声明
尽信书则不如,已上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激
3. 扫描关注
