我正在使用Spring Boot运行休眠搜索。我已经为我的应用程序编写了工作配置。但是,我想外部化配置并使用const withExpensive = Comp => props => {
const optionalValue = useExpensiveHook();
return <Comp optionalValue={optionalValue} ...props />;
}
const Component = ({ optionalValue }) => {
return ...
}
const ExpensiveComponent = withExpensive(Component);
而不是./config/hibernate.properties
。将我的属性文件复制到所需位置后,我得到了例外:
src/main/resources/hibernate.properties
有人对我应该如何告诉spring读取我的配置文件有任何想法吗?
答案 0 :(得分:0)
将您的配置移至src/main/resources/application.properties
文件,并在所有地方spring.jpa.properties.
之前加上前缀,因此hibernate.dialect
将变成spring.jpa.properties.hibernate.dialect
。
然后,您可以使用Spring功能将配置移动到所需的位置。要将其移至./config/application.properties
,我想您必须将@PropertySource("./config/application.properties")
添加到您的@Configuration
类之一或类似的类中。
我确定您还可以将休眠配置保存在单独的文件中(与其余应用程序配置分开)。
有关在Spring Boot中外部化配置的更多详细信息,请参见https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html。
答案 1 :(得分:0)
由于某种原因,只要hibernate.properties
配置文件不存在,hibernate-search就会阻止应用程序启动。尝试了一段时间没有成功之后,我找到了解决我的问题的方法。
hibernate.properties
文件并将其放在src/main/resources
下。其次,我将所有休眠搜索配置移至application.properties
,如下所示:
spring.jpa.properties.hibernate.search.default.indexmanager = elasticsearch
spring.jpa.properties.hibernate.search.default.elasticsearch.host = http://my-server.com
spring.jpa.properties.hibernate.search.default.elasticsearch.index_schema_management_strategy = CREATE
spring.jpa.properties.hibernate.search.default.elasticsearch.required_index_status = yellow
通过这种方式,应用程序将启动,并且spring将从here中所述的外部化配置中获取所有配置。