在Spring Data中创建存储库实例

时间:2013-11-24 21:08:17

标签: spring spring-data

我是Spring Data和Spring的新手,所以不要对我很难。

我找不到实例化存储库的方法。我阅读了文档:

http://docs.spring.io/spring-data/data-solr/docs/1.0.0.RC1/reference/htmlsingle/#repositories.create-instances

它描述了声明存储库(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);
}

有人可以帮助我吗?

1 个答案:

答案 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加载上下文,则需要在类路径中使用该文件。