我找到了一个spring boot示例代码,其中的属性直接用@Value注入。
关键是这些属性来自一个实际上不存在于代码中的bean。
注释有这方面:
@Value ("#{envPC['desktop.url']}")
private String url = "";
所以我有几个问题: 1 - 如何定义env bean? 2 - 在定义env bean时,如何为以下引用调节正确的结构:desktop.url,desktop.port ....
我希望问题清楚。
提前致谢
答案 0 :(得分:0)
在Spring上下文中隐式定义了环境bean。 Spring将来自多个源的属性收集到此bean中:JVM选项,通过@PropertySource
添加的属性文件等。
它也可以像任何其他bean一样注入:
@Autowired
private org.springframework.core.env.Environment environment;
更多细节可以在https://docs.spring.io/或在这篇好文章中找到:http://www.baeldung.com/properties-with-spring
答案 1 :(得分:0)
即使我使用@Configuration属性公开一个@Configuration(“envPC”)bean,我也会得到一个关于索引的SpEL异常,似乎是不允许的:'desktop.url'