当前位置: 首页 > 知识库问答 >
问题:

Spring引导自定义属性

侯令雪
2023-03-14

在我的项目中有2个资源属性

1.application.properties

server.port=8002

spring.data.mongodb.host=
spring.data.mongodb.port=
spring.data.mongodb.database=
spring.data.mongodb.username=
spring.data.mongodb.password=

2. 应用开发.性能

server.port=8002

spring.data.mongodb.host=
spring.data.mongodb.port=
spring.data.mongodb.database=
spring.data.mongodb.username=
spring.data.mongodb.password=

spring.data.solr.host

此类使用开发的值属性

@Configuration
@EnableSolrRepositories(basePackages = {
    "id.alfadigital.alfagift.service.product.v1.db.solr.repository",
    "id.alfadigital.alfagift.service.product.v2.db.solr.repository"
})
public class SolrConfiguration {

  @Value("${spring.data.solr.host}")
  private String solrUrl;

  @Bean
  public SolrClient solrClient() {
    return new HttpSolrClient.Builder(solrUrl).build();
  }

  @Bean
  public SolrTemplate solrTemplate(SolrClient client) {
    return new SolrTemplate(client);
  }
}

我使用 application-development.properties 作为我的项目资源

因此,我使用以下命令运行该项目:

< code > mvn spring-boot:run-D spring . profiles . active = development

但是当我运行该项目时附加了一个错误

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'solrConfiguration': 
           Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: 
           Could not resolve placeholder 'spring.data.solr.host' in value "${spring.data.solr.host}"
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'spring.data.solr.host' in value "${spring.data.solr.host}"

我很迷茫,我的错误在哪里,我该怎么办?

共有3个答案

卢永寿
2023-03-14

确保您的属性文件与此处描述的Spring配置文件的名称匹配。

也就是说,如果你从“开发”配置文件运行,Spring应该选择appplication-development.properties文件(或appplication-development.yml)。

然后,在< code > application . properties 文件中,您可以使用< code > spring . profiles . active = development 来指定您的配置文件。或者您可以从命令行使用您提到的< code>-Dprofile来指定配置文件。

如链接中所述,“如果指定了多个配置文件,则应用最后获胜策略。例如,spring.profiles.active属性指定的配置文件将添加在通过SpringApplication API配置的配置文件之后,因此优先。”

但也要注意,在您的共享代码中,您的spring.data.solr.host属性没有价值。

公良英资
2023-03-14

只要您有正确的文件名应用程序开发。属性和正确的Java选项-Dspring.profiles。active=development,您还必须将特定于配置文件的属性文件与应用程序属性一起放置。

配置文件特定的属性从与标准应用程序相同的位置加载。

https://docs . spring . io/spring-boot/docs/2 . 1 . 12 . release/reference/html/boot-features-external-config . html # boot-features-external-config-profile-specific-properties

舒赞
2023-03-14

您可以使用以下命令运行您的应用程序吗?由于错误地使用命令,它无法获取开发配置文件。

运行Dspring.profiles.active

示例:如何使用 Spring Boot 配置文件

 类似资料:
  • 我正在与Spring Boot一起使用JDBI。我遵循了本指南,这导致必须创建一个类:<code>JdbiConfig</code>,对于应用程序上下文中需要的每个dao,您必须添加: 我想知道Spring Boot是否有办法创建一个定制的处理器来创建beans并将它们放入应用程序上下文中。我有两个想法: 使用自定义注释注释DAO并编写一些东西来提取它们。我尝试过只是手动将这些注入到应用程序启动中

  • 我使用spring boot和spring boot starter hateoas开发了一个rest服务。我在定制ObjectMapper时遇到了一个问题。代码如下: 一个pplication.java 依赖关系: 账单java: BillController.java: 我得到的输出是: 但是我需要“账单”代替“billList”。这是因为ObjectMapper没有被定制。我是否错过了任何配

  • 我注意到Spring Boot执行器只有在应用程序使用Spring MVC(DispatcherServlet)处理endpoint时才起作用。默认情况下,如果您在项目中添加了spring-boot-starter-web模块,则包含此servlet。 一旦这个servlet存在,类EndpointWebMvcAutoConfiguration将定制Spring MVC,以支持endpoint和其

  • 我使用自动配置(仅通过注释)运行Spring启动和kafka,并在.yaml文件中定义了道具,即: 它工作得很好,spring maps即字段group-id正确。 但是当我尝试使用相同的yaml文件手动配置Kafka(使用消费者工厂和消费者配置)时,我遇到了问题。在类中,消费者配置Kafka属性以 命名。在名称中,而不是 _ 即: 所以我不能把它们加载到map中,然后把map传递给Consume

  • 问题内容: 我正在使用Bootstrap 3,并且有一个显示一些数据的表。在此表中,我已应用了一些JavaScript进行条件格式设置,如果满足条件,则将元素的类设置为“红色” HTML的元素如下: 我现在在文本颜色适用的奇数行上有冲突,但是背景颜色被自举程序中的以下CSS覆盖。 我该如何解决此冲突并确保红色阶级有上风? 问题答案: 您的问题很可能与特异性有关。克里斯·科耶尔(ChrisCoyie

  • 本文向大家介绍C#自定义属性,包括了C#自定义属性的使用技巧和注意事项,需要的朋友参考一下 示例 查找具有自定义属性的属性-MyAttribute 查找给定属性上的所有自定义属性 枚举具有自定义属性的所有类-MyAttribute 在运行时读取自定义属性的值 用法