我是Spring Data和Spring的新手,所以不要对我很难。
我找不到实例化存储库的方法。我阅读了文档:
它描述了声明存储库(xml,过滤器等)的不同方法,但没有说明如何在我的代码中获取它的实例。
这是我的配置xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:solr="http://www.springframework.org/schema/data/solr"
xsi:schemaLocation="http://www.springframework.org/schema/data/solr http://www.springframework.org/schema/data/solr/spring-solr-1.0.xsd
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<solr:repositories base-package="spring" />
<solr:solr-server id="solrServer" url="http://localhost:8983/solr" />
<bean id="taskRepo" class="spring.SolrTaskRepository">
</bean>
<bean id="solrTemplate" class="org.springframework.data.solr.core.SolrTemplate">
<constructor-arg index="0" ref="solrServer"/>
</bean>
</beans>
SolrTaskRepository:
public interface SolrTaskRepository<T, ID extends Serializable> extends SolrCrudRepository<T, ID> {
Page<T> findByOrigin(String origin, Pageable page);
}
有人可以帮助我吗?
答案 0 :(得分:1)
如果你想在上下文的某个地方使用repo(或任何一个spring bean):
ApplicationContext context = new ClassPathXmlApplicationContext(
"applicationContext.xml");
MyRepo obj = (MyRepo) context.getBean("myRepo");
如果你在spring(某些服务)管理的其他bean中使用repo,你可以自动装载它
@Autowire
private MyRepo myRepo;// + setter
或在上下文中注入它:
<bean id="someService" class="com.org.core.SomeService">
<property name="myRepo" ref="myRepo" />
</bean>
对于这两种方式,您需要在上下文中定义的bean:
<bean id="myRepo" class="com.org.core.MyRepo">
</bean>
示例上下文文件:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">
<bean id="myRepo" class="com.org.core.MyRepo">
</bean>
</beans>
如果使用ClassPathXmlApplicationContext
加载上下文,则需要在类路径中使用该文件。