@Value获取配置文件值返回null
在自定义参数解析器实现HandlerMethodArgumentResolver子类中,获取到@Value标签值为null。
示例:
@Configuration
public class ArgumentResolverConfig extends WebMvcConfigurerAdapter {
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers)
{
argumentResolvers.add(new UserArgumentResolver());
}
}
直接new UserArgumentResolver(),不受spring容器的管理,所以在UserArgumentResolver中使用@Value获取不到值
修改后:
@Configuration
public class ArgumentResolverConfig extends WebMvcConfigurerAdapter {
@Bean
public UserArgumentResolver getUserArgumentResolver(){
return new UserArgumentResolver();
}
@Override
public void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) {
argumentResolvers.add(getUserArgumentResolver());
}
}
@Bean注解交给spring容器管理bean,此时@Value可以获取配置文件值。