Вопрос

Я пишу автономную программу Java, которая называет хранилищем источника данных для прав человека.Я использую Mongo DB для постоянства.Я следую следующую стойку StackoverFlow и некоторые проекты из GitHub, но когда я запускаю свою программу, потерю не удается, так как репозиторий нулевой.Я не эксперт весной, так что было бы полезно, если бы кто-то мог показать мне вопрос с опубликованной программой.

Application-context.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:context="http://www.springframework.org/schema/context"
    xmlns:mongo="http://www.springframework.org/schema/data/mongo"
    xsi:schemaLocation="http://www.springframework.org/schema/data/mongo 
    http://www.springframework.org/schema/data/mongo/spring-mongo.xsd
    http://www.springframework.org/schema/beans 
    http://www.springframework.org/schema/beans/spring-beans.xsd">


<mongo:mongo id="mongo" host="monopolyvm3" port="27017" />
<mongo:db-factory dbname="test" mongo-ref="mongo" />
<mongo:db-factory id="mongoDbFactory" dbname="cloud"
    mongo-ref="mongo" />


<bean id="mappingContext" class="org.springframework.data.mongodb.core.mapping.MongoMappingContext" />

<bean id="defaultMongoTypeMapper"
    class="org.springframework.data.mongodb.core.convert.DefaultMongoTypeMapper">
    <constructor-arg name="typeKey"><null/></constructor-arg>
</bean>

<bean id="mappingMongoConverter" class="org.springframework.data.mongodb.core.convert.MappingMongoConverter">
    <constructor-arg name="mongoDbFactory" ref="mongoDbFactory" />
    <constructor-arg name="mappingContext" ref="mappingContext" />
    <property name="typeMapper" ref="defaultMongoTypeMapper" />
</bean>

<bean id="mongoTemplate" class="org.springframework.data.mongodb.core.MongoTemplate">
    <constructor-arg ref="mongoDbFactory" />
    <constructor-arg name="mongoConverter" ref="mappingMongoConverter" />
    <property name="writeConcern" value="SAFE" />
</bean>
<context:component-scan base-package="com.xxxx"></context:component-scan>

<mongo:repositories base-package="com.xxxx.yyyy" />
.

Репозиторий

public interface SlpRepository extends MongoRepository<Slp, Long> {

}
.

Основная программа

public class App {

    @Autowired
    static
    SlpRepository slpRepository;
    public static void main(String[] args) {
        ApplicationContext ctx = new GenericXmlApplicationContext("application-context.xml");
        Slp slp = new Slp();
        slp.setClientCount(100000L);
        slp.setPolicyName("testing");
        slp.setSlpName("slp_testing");
        slpRepository.save(slp);

    }


}

Object to store
------------------

@Document(collection="slps")
public class Slp implements Serializable {


    private Long slpId;
    private String slpName;
    private String policyName;
    private Long clientCount;
}
.....all getters and setters
.

jfyi..i пытался сохранить объект, используя монготемпературу, и он хорошо работает.

Это было полезно?

Решение

Проблема в этом примере заключается в том, что вы создаете контекст в вашем классе App, но никогда не получаете ручку репозитория из контекста приложения.Вы не можете автоматически проволоки в тот же класс, который содержит контекст приложения.То, что вы можете попробовать, - это принять экземпляр репозитория из контекста (I.E CTX.getBean (SLPRPOSIOGITY.CLASS)).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top