Я пишу код с весенним ботинком, который будет принимать csv в качестве входных данных и создать коллекцию mongodb и вставить его в mongodb.Весенние данные Конфигурация mongodb в весеннем загрузочном проекте
В настоящее время я придерживаюсь использования mongodb в весеннем загрузочном коде. Я получаю NullPointerException при использовании метода сохранения в интерфейсе MongoRepository.
Возможно, эта проблема вызвана неправильной конфигурацией в файле application.yml Ниже приведены конкретные изменения mongodb в application.yml в каталоге src/main/resources.
spring:
data:
mongodb.host: localhost
mongodb.port: 27017
mongodb.uri: mongodb://localhost/test
mongo.repositories.enabled: true
Application.java файл ниже:
@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);
}
}
Если Application.java реализует CommandLineRunner и записи для вставки MongoDB специального кода в перекрытой перспективе метода, код работает отлично. Этот код доступен в этом URL: https://spring.io/guides/gs/accessing-data-mongodb/
, но мой Application.java расширяет класс SpringBootServletInitializer и переопределения сконфигурировать (SpringApplicationBuilder приложения) метод. Пожалуйста, посмотрите выше для моего приложения.java.
Мне нужен один и тот же код (как в том же коде, для которого я упоминал выше в классе Application.java) в классе утилит, существующий в разных пакетах для моего проекта, основанного на весне.
интерфейс пользовательского хранилища ниже:
CustomRepository.java:
public interface CustomRepository extends MongoRepository<CsvPojo, String>{
}
В полезности класса, я просто хочу, чтобы ввести CustomRepository и использовать метод сохранения, чтобы сохранить созданный CsvPojo в MongoDB. Но я занимаюсь NullPointerException при выполнении строки customRepository.save (csvPojo);
Пожалуйста, предложите! Если вам нужна другая информация, пожалуйста, скажите мне!
С уважением, Shobhit
Прежде всего, почему вы используете класс 'Application', расширяющий' SpringBootServletInitializer'? Во-вторых, пожалуйста, покажите код, который вы используете для своего настраиваемого класса утилиты – geoand
Вы не можете вводить в класс утилиты (я подозреваю, что класс не управляется весной или у вас есть статическое поле, которое вы пытаетесь ввести). Также в вашей конфигурации вы можете удалить '@ EnableMongoRepositories' и' @Import (RepositoryRestMvcConfiguration.class) ', Spring Boot автоматически добавляет их при обнаружении соответствующих данных Spring MongoDB и Spring Data Rest. Кроме того, если ваш класс 'Application' находится в пакете' com.khoubyari.example', вы можете просто '@ ComponentScan'. –