我们不能在Spring Boot中使用java.util.Duration作为@value配置。
在此处显示此问题的示例项目:https://github.com/costimuraru/spring-boot-sample Spring Boot version:1.5.9.release
@RestController
public class HelloController {
@Value("${mykey}")
Duration value;
@RequestMapping("/")
public String index() {
return "Greetings at " + value;
}
}
...
public class MyConfigPropertySource extends PropertySource {
MyConfigPropertySource(String name) {
super(name);
}
@Override
public Object getProperty(String path) {
return "mykey".equals(path) ? Duration.ofMinutes(1) : null;
}
}
此错误完全是意外的:找不到能够将类型[java.time.duration]转换为类型[java.lang.string]
的转换器。我们既没有在@value字段中使用字符串,也没有在PropertySource的return语句中使用字符串。那么为什么Spring Boot要尝试将其转换为字符串呢?任何帮助我们都很感激。
只需使用Spring表达式语言
@Value("#{T(java.time.Duration).parse('${mykey}')}")
private Duration value;
本文向大家介绍Springboot中@Value的使用详解,包括了Springboot中@Value的使用详解的使用技巧和注意事项,需要的朋友参考一下 Springboot通过@Value注解将配置文件中的属性注入到容器内组件中(可用在@Controller、@Service、@Configuration、@Component等Spring托管的类中) 1.普通字符串注入 例:yml中存在key
我正在尝试使用Mockito在SprinBoot应用程序中进行一些jUnit测试。 现在我的服务有了一些变量,可以从通过注释: 我试图通过像这样使用来测试这个: 但是,该属性不会被填充,并保持为。 这方面有很多TPOIC,但我还没能拼凑出一个解决方案。我看到解决方案建议,但它似乎想做一个集成测试,使服务加速,但由于无法连接到数据库,服务失败了。所以这不是我想要的。 我还看到一些解决方案建议我制作一
请建议如何解决这个问题。我被困在这里了。 下面是错误信息; null
我正在将Spring Boot从1.3升级到1.5。对于升级到1.5,我已经替换了 还有,我在用
我有一个两个Spring Boot应用程序。一个是进行rest调用的rest客户端。另一个只有Restendpoint的应用程序。 当rest客户机到达Restendpoint时,它会失败。 这是用于命中restendpoint的代码: 这是客户端尝试访问的其余endpoint: 这是我在带有restendpoint的应用程序中看到的错误: 为什么 Rest 调用适用于邮递员而不是我的 rest
问题内容: 我正在尝试通过符合协议的编码模型来获取数据。但是它无法像下面的代码那样调用func : 但是在另一个演示中,效果很好,为什么呢? 问题答案: 解决方案1。 https://github.com/satishVekariya/SVCodable 试试这个代码,它扩展了可编码 解决方案2。 避免污染带有扩展名的Apple提供的协议 用