Java 注入Springbean的Hibernate搜索映射工厂
我为每个实体使用和配置了boosting。配置可以通过我需要在MappingFactory中访问的服务读取。是否有可能在SearchMappingFactory中以某种方式获取此bean?问题在于,在搜索映射需要bean的时候,spring上下文并没有完全创建Java 注入Springbean的Hibernate搜索映射工厂,java,spring,dependency-injection,hibernate-search,Java,Spring,Dependency Injection,Hibernate Search,我为每个实体使用和配置了boosting。配置可以通过我需要在MappingFactory中访问的服务读取。是否有可能在SearchMappingFactory中以某种方式获取此bean?问题在于,在搜索映射需要bean的时候,spring上下文并没有完全创建 public class SearchMappingFactory{ @Factory public SearchMapping getSearchMapping() { SearchMapping sear
public class SearchMappingFactory{
@Factory
public SearchMapping getSearchMapping() {
SearchMapping searchMapping = new SearchMapping();
// here I need to read configuration using configurationService
// ... define mapping ...
return searchMapping;
}
}
然后我在sessionFactory中这样设置映射
hibernateProperties.put("hibernate.search.model_mapping", SearchMappingFactory.class.getCanonicalName());
我可以传递内部带有自动连线bean的SearchMappingFactory实例,但SearchMappingBuilder.getProgrammaticMappingClass不允许…我找到了解决方案,我使SearchMappingFactory成为具有自动连线依赖项的bean,并直接在那里传递了searchMapping:
hibernateProperties.put("hibernate.search.model_mapping", searchMappingFactory.getSearchMapping());
您能否澄清您的问题并添加更多上下文/代码?“配置可以通过映射工厂中需要访问的服务读取”是什么意思。您指的是什么配置服务?“问题是应用程序上下文没有完全创建”-你是说Spring应用程序上下文吗?对,这是Spring上下文,基本上我需要在SearchMappingFactory中自动连接Spring bean。在本例中,这个bean是我的configurationService,我在其中读取xml配置。