@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可以获取配置文件值。
博客主要讲述Java中在自定义参数解析器实现HandlerMethodArgumentResolver子类时,使用@Value获取配置文件值返回null的问题。直接创建实例不受spring容器管理时获取不到值,通过@Bean注解将其交给spring容器管理后,@Value可正常获取配置文件值。
5346

被折叠的 条评论
为什么被折叠?



