spring:
profiles: prod
profiles.include:
- enable_tls
- enable_mongo_ssl
配置类-根据活动配置文件创建bean:
@Configuration
@PropertySource("classpath:/mongo-${mongo.environment}.properties")
public class MongoConfiguration {
@Bean
@Profile("enable_mongo_ssl")
public MongoClientOptions.Builder mongoClientOptionsBuilder() {
return getMongoClientOptionsBuilder();
}
这个很管用。但是,当我删除application.yml并通过Spring Cloud Config-with Git repository使用外部配置时,这就不起作用了。活动配置文件仅为prod,不包括“enable_tls”和“enable_mongo_ssl”,因此在bean创建时,语句:
@Profile("enable_mongo_ssl")
不再是真的了。
"profiles": [
"prod"
],
"label": null,
"version": "2ddd208fff7caa48b2ae41d69020325ce61f241e",
"state": null,
"propertySources": [
{
"name": "file:///C://dev/config-repo/config/application-prod.yml",
"source": {
"spring.profiles.include[0]": "enable_tls",
"spring.profiles.include[1]": "enable_mongo_ssl",
"server.ssl.key-store-password": "ENC(xxx)",
}
}
我当前的解决方案是将所有属性都外部化在配置服务器中,但Spring.Profiles.Include保留在application.yml类路径文件中。
他们不想从服务器实现递归配置文件检索:
https://github.com/spring-cloud/spring-cloud-config/issues?q=is%3aissule+spring.profiles.include
只需在bootstrap.yaml(()中列出所有特性标志(Spring配置文件)
问题内容: 我究竟做错了什么?我无法获得子属性内标签的值。这是我的xml: 这是我在节点中所做的: 我确定那是一个语法问题,但我看不到它!它有可能获得两个孩子的名字,例如标题和文本? 问候 问题答案: 使用的语法允许您浏览JSON对象的节点。但是似乎您正在尝试搜索将其视为XPath谓词。它不会工作。 使用xml2js可以使用以下代码在代码中获取对象数组: 然后,循环比较该值,这就是达到属性的方式。
我的意图是在spring boot应用程序中有两个概要文件—开发和生产概要文件。开发概要文件只是为了覆盖生产概要文件的一些变量(比如内存中的数据库,而不是云中的数据库)。由于我预计将来会对生产概要进行一些更改,所以在开发概要中复制变量似乎不是一个解决方案。 因此,在Spring参考中,我读到应该只从引用的配置文件中添加属性。 有时,将特定于概要文件的属性添加到活动概要文件中而不是替换它们是很有用的
但这不可能访问B。
您可以用Spring以各种方式创建-对象。 一种方法是将-注释添加到-声明中,如下所示: 它将从-类创建一个bean,然后使用其setter用配置文件中的值填充其成员。 您也可以直接在-Object上进行注释,如下所示: 通过将放置到任何加载的配置来创建它。 还可以使用 但是如何结合第一个@Bean方法创建不可变的ConfigurationProperties呢? 我尝试过这样的东西: 它告诉我,
关于如何使用春云流实现同样的事情,有什么想法吗?
我的Spring boot应用程序中有以下文件应用程序属性文件。所有属性文件都位于src/main/resources文件夹中,Spring boot版本为2.1.6 application.propertiesapplication-dev.propertiesapplication-tst.properties 应用属性应用。name={app.name}app。common=common v