Spring boot-Application.properties中的自定义变量
我有一个使用restful api的spring引导客户机。除了在java类中硬编码RESTAPI的IP地址外,application.properties中是否有我可以使用的密钥条目 如果没有,我可以创建一个自定义条目吗Spring boot-Application.properties中的自定义变量,spring,spring-mvc,spring-boot,spring-data,Spring,Spring Mvc,Spring Boot,Spring Data,我有一个使用restful api的spring引导客户机。除了在java类中硬编码RESTAPI的IP地址外,application.properties中是否有我可以使用的密钥条目 如果没有,我可以创建一个自定义条目吗 谢谢您可以将自己的条目添加到application.properties。只需确保属性名称不会与中列出的常见属性冲突,而不是将IP硬编码到属性文件中,您可以使用 -Dmy.property=127.127.10.20 而且弹簧靴会自动用 @Value("${my.proper
谢谢您可以将自己的条目添加到application.properties。只需确保属性名称不会与中列出的常见属性冲突,而不是将IP硬编码到属性文件中,您可以使用
-Dmy.property=127.127.10.20
而且弹簧靴会自动用
@Value("${my.property}")
private String myProperty;
Spring Boot使用的基础设施可以以完全相同的方式在您自己的项目中使用。您在@zmitrok answer中评论了“未知属性”警告。这是因为您的属性没有元数据,所以IDE不知道它 如果可以的话,我强烈建议您不要使用
@Value
,因为与Spring Boot提供的功能相比,它相当有限(@Value
是Spring框架的一项功能)
首先为您的IP创建一些POJO:
@ConfigurationProperties("app.foo")
public class FooProperties {
/**
* IP of foo service used to blah.
*/
private String ip = 127.0.0.1;
// getter & setter
}
那么你有两个选择
@Component
放在FooProperties
上,并通过在任何@configuration
类上添加@EnableConfigurationProperties
来启用配置属性的处理(从Spring Boot1.3.0.M3
开始,这最后一步不再是必需的)FooProperties
不变,并将@EnableConfigurationProperties(FooProperties.class)
添加到任何@Configuration
类中,该类将自动为您创建Springbean李>
完成后,app.foo.ip
可以在application.properties
中使用,您可以在代码中@Autowired
fooperties
查找属性值
@Component
public MyRestClient {
private final FooProperties fooProperties;
@Autowired
public MyRestClient(FooProperties fooProperties) { ... }
public callFoo() {
String ip = this.fooProperties.getIp();
...
}
}
好的,所以你的钥匙在IDE中仍然是黄色的。最后一个步骤是。将以下内容添加到pom.xml中
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-configuration-processor</artifactId>
<optional>true</optional>
</dependency>
org.springframework.boot
还有更多细节。我明白了,但当我输入restAPIServiceAddress
作为一个条目时,它会在它下面加上黄色下划线,并说“是一个未知的属性”,可以吗?我刚刚添加了一个答案,解释了黄色的含义。我在哪里添加-Dmy.property
?您使用哪个IDE?如果它是Eclipse:如果您是从命令行运行的,只需将它添加到endah ok谢谢,这个-Dmy.property可以添加到java-jar我的应用程序的末尾。war
?我认为这是goWow的方法对此一无所知(也许我应该开始阅读更多文档),这有很大帮助,谢谢。我遵循了这些步骤(选择上面的选项1),但是Spring工具套件仍然在application.properties
文件中将我的属性标记为未知。有一个快速修复程序可用于创建应用程序元数据,但我假设spring引导配置处理器
可以解决这个问题?您必须询问STS团队。我只知道它应该是开箱即用的。我们没有太多需要调查的内容,请创建另一个包含更多细节的线程。@StephaneNicoll:这是我刚刚发现的一个非常棒的功能,我要感谢您和团队其他成员为spring boot所做的所有工作,继续做好工作;)我不能说这是正确和最好的方法,但是仅仅使用@zmitrok也很好。不要理会黄色警告