Java Spring启动自定义属性
在我的项目中有两个资源属性 1。application.propertiesJava Spring启动自定义属性,java,spring-boot,Java,Spring Boot,在我的项目中有两个资源属性 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= server.port=8002 spring.data.mongodb.host= spring
server.port=8002
spring.data.mongodb.host=
spring.data.mongodb.port=
spring.data.mongodb.database=
spring.data.mongodb.username=
spring.data.mongodb.password=
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
2。应用程序开发.属性
server.port=8002
spring.data.mongodb.host=
spring.data.mongodb.port=
spring.data.mongodb.database=
spring.data.mongodb.username=
spring.data.mongodb.password=
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);
}
}
我使用应用程序开发.properties作为我的项目资源
因此,我使用以下命令运行该项目:
mvn spring启动:运行-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}"
我很困惑,我的错误在哪里?我该怎么办?您能用下面的命令运行您的应用程序吗。由于错误地使用命令,它无法拾取
开发
配置文件
mvn spring启动:run-Dspring.profiles.active=development
例如:
如果您有正确的文件名
应用程序开发.properties
和正确的Java选项-Dspring.profiles.active=development
,您还必须将特定于配置文件的属性文件与应用程序.properties
配置文件特定的属性从与标准application.properties相同的位置加载
确保您的属性文件与所述的Spring配置文件的名称匹配 也就是说,如果您是从“开发”配置文件运行的,Spring应该选择
application development.properties
文件(或application development.yml
)
然后在application.properties
文件中,可以使用spring.profiles.active=development
指定配置文件。或者,您可以使用前面提到的-Dprofile
从命令行指定配置文件
如链接中所述,“如果指定了多个配置文件,则应用最后一个wins策略。例如,由spring.profiles.active属性指定的配置文件添加在通过SpringApplication API配置的配置文件之后,因此优先。”
但还要注意的是,在共享代码中,您的spring.data.solr.host属性没有任何值。请检查您的应用程序是否在开发配置文件下运行。看来不是。如果您看到spring日志的开头,您可以看到活动的概要文件。在您的开发配置中,该属性实际上有值吗?因为在您共享的属性文件中,没有。