我有一个使用restful api的Spring Boot客户机。应用程序中有任何密钥条目,而不是在java类中硬编码RESTAPI的IP地址。我可以使用的属性?
如果没有,我可以创建一个自定义条目吗?
谢啦
您可以将自己的条目添加到应用程序中。财产。只需确保属性名称与中列出的常用属性不冲突即可http://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/#common-应用程序属性
您可以使用以下命令启动应用程序,而不是将IP硬编码到属性文件中
-Dmy。属性=127.127。10.20
而且Spring靴会自动用
@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
一旦你完成了应用程序。福。ip可在
应用程序中使用。属性
,您可以在代码中查找属性的值
@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>
瞧,你的密钥被识别了,你有javadoc,IDE给你默认值(你在字段中初始化的值)。一旦确定可以使用任何类型,转换服务将处理(即
URL
)并使用该字段上的javadoc为密钥生成文档。
您还可以在字段中添加任何
JSR-303
约束验证(例如,一个正则表达式来检查它是否是有效的ip)。
查看此示例项目和文档以了解更多详细信息。
但如果我做了这样的事情,它是有效的!!!(重写当前可用的方法以捕获HttpMessageNotReadableException) 我的问题是@exceptionHandler(value={customexception.class})只用于自定义异常?不能习惯于现有的更一般的异常?为了自定义这样的一般异常,我们总是需要重写它们原来的异常处理方法吗? 下面是日志结果。
当尝试运行或调试带有applicationIdSuffix(.debug)的自定义BuildType时,手机上安装了应用程序,但正确的活动实际上并没有启动。实际上,启动了具有原始包名的活动(示例:在应该启动com.fobbymaster.app.debug时启动了com.fobbymaster.app)。 我在想,有一些配置需要修改,但我似乎找不到。 有什么想法吗? 设备SHELL命令:pm in
在我的申请中。在yaml属性文件中,我定义了一个变量,如下所示- 从这篇SOF文章中,我了解了。(点)和-(破折号)是如何转换的。 现在在ENV变量文件中-我没有像- 或或等 相反,我在env(文件)是- spring boot是否将props文件中的变量< code > service-account . SECRET 与< code > service account _ SECRET env
我正在创建一个Spring启动应用程序,它也为外部库的一个类创建bean,这个外部java bean需要java.util.properties作为构造函数参数之一。虽然我可以使用配置Propety与前缀从Spring引导加载的属性文件读取属性并将其转换为java.util.properties.但是,我不希望在属性文件中有任何额外的前缀环境或属性来源java.util.properties 这是
我们运行了一些基于sames原则的Spring boot应用程序,例如: 记录数据库中的事件。 处理异常的常用方法(@controlleradvice) 使用MDC显示日志 及更多信息。 今天,我们使用Spring Boot父应用程序建立应用程序的基础。它的工作相当好,但似乎更好地使用Spring启动机机制。 null 如果我们只使用它来定义我们的启动配置,那么提供一些没有@bean或@servi