Estoy escribiendo el código con el inicio de la primavera que se llevará a csv como entrada y crear mongodb colección y a insertar a mongodb.

Actualmente me estoy pegado en el uso de mongodb en la primavera de arranque basado en el código. Estoy recibiendo NullPointerException, mientras que utilizando el método de guardar en MongoRepository interfaz.

Probablemente este problema es debido a una incorrecta configuración de la aplicación.archivo yml
A continuación se mongodb cambios específicos en la aplicación.yml en el directorio src/main/resources directorio.

spring:
   data:
      mongodb.host: localhost
      mongodb.port: 27017
      mongodb.uri: mongodb://localhost/test
      mongo.repositories.enabled: true

Application.java el archivo es el siguiente:

@Configuration
@EnableMongoRepositories
@Import(RepositoryRestMvcConfiguration.class)
@EnableAutoConfiguration  //Sprint Boot Auto Configuration
@ComponentScan(basePackages = "com.khoubyari.example")
public class Application extends SpringBootServletInitializer {

private static final Class<Application> applicationClass = Application.class;
private static final Logger log = LoggerFactory.getLogger(applicationClass);

public static void main(String[] args) {
    SpringApplication.run(applicationClass, args);
}


@Override
protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
    return application.sources(applicationClass);
}
}

Si Application.java implementa CommandLineRunner y escribir mongodb inserción de código específico en overrided método de ejecución, el código está funcionando bien. Este código está disponible en esta URL:
https://spring.io/guides/gs/accessing-data-mongodb/

pero, mi Application.java se extiende SpringBootServletInitializer clase y reemplazar configurar(SpringApplicationBuilder aplicación) método. Por favor, mire por encima de mi Application.java.

Necesito para utilizar los mismos db código específico (como en el mismo código para que la URL que he mencionado anteriormente en Application.java clase) en la utilidad de clase existentes en los diversos paquete para mi la primavera de arranque basado en proyecto.

Personalizados de la interfaz del repositorio es el siguiente:

CustomRepository.java:

public interface CustomRepository extends MongoRepository<CsvPojo, String>{

}

En clase de utilidad, solo quiero inyectar CustomRepository y el uso del método save para guardar creado CsvPojo en mongodb. Pero estoy geiing NullPointerException durante la ejecución de la línea de customRepository.guardar(csvPojo);

Por favor, sugiera! Si otra información se necesita, por favor dime!

Saludos,
Shobhit

  • Primero de todo, ¿por qué es usted Application clase se extiende SpringBootServletInitializer? Segundo, por favor, mostrar el código que se está utilizando para la utilidad de configuración personalizada de la clase
  • Usted no puede inyectar en una clase de utilidad (sospecho que la clase no es la primavera o administrado tiene un static campo que usted está tratando de inyectar). También en su configuración puede quitar @EnableMongoRepositories y @Import(RepositoryRestMvcConfiguration.class), Primavera de Arranque agrega automáticamente los respectivos Primavera de Datos MongoDB y la Primavera de Datos de Resto es detectado. Además, si tu Application clase está en el com.khoubyari.example paquete usted puede hacer @ComponentScan.
InformationsquelleAutor S Singh | 2014-10-31

1 Comentario

  1. 4

    Llamar método de guardar en la primavera del resto controlador de resolver el problema en lugar de llamar a los de la clase de utilidad.

    Acabo de inyectar CustomRepository interfaz de controlador y utilizando el método de guardar!

    Tengo la solución después de estudiar «Acerca de la sección» Servicio de https://github.com/khoubyari/spring-boot-rest-example

    Tengo que explorar más en la primavera de arranque pero de todos modos problema se resuelve después del de arriba publicado esfuerzos!

Dejar respuesta

Please enter your comment!
Please enter your name here