У меня есть раздражающая проблема с ошибкой Playframwork GlobalSettings
вопрос, я хочу переместить мою конду внутри onStart
в предложенный вами способ, но на самом деле я не могу это сделать, документация не имеет смысла, и у меня есть не знаю, как это решить, я провел дни и дни, пытаясь сделать это без везения!java Playframework Отмена устаревания GlobalSettings для onStart
https://www.playframework.com/documentation/2.5.x/GlobalSettings
Просто я хочу, чтобы запустить базу данных исходным методом
private void initialDB() {
UserService userService = play.Play.application().injector().instanceOf(UserService.class);
if (userService.findUserByEmail("[email protected]") == null) {
String email = "[email protected]";
String password = "1234";
String fullName = "My Name";
User user = new User();
user.password = BCrypt.hashpw(password, BCrypt.gensalt());
user.full_name = fullName;
user.email = email;
user.save();
}
}
Это был внутри onStart
метод в Global extends GlobalSettings
Java файл, я попытался извлечь его внешний модуль, но не повезло.
public class GlobalModule extends AbstractModule {
protected void configure() {
initialDB();
}
}
Я нашел несколько решений в Scala и не знаю, как это может быть в Java, но у меня нет времени, чтобы узнать это, кроме того, что мне не нравится это тоже.
Да, я пробовал что-то вроде этого, я достигаю 'OnStartup', но потом я получаю' конструктор инъецирования ошибок, java.lang.RuntimeException: нет запущенного приложения' –
О, кажется, потому что я имею доступ к 'Play.application () .configuration() 'для получения конфигураций. –
Большое спасибо, я, наконец, решил свою проблему :) проблема была сложной, я пытался получить доступ к экземплярам, которые не должны вызываться до запуска приложения, я добавил параметр в конструктор 'public OnStartup (окончательный UserService userService, окончательная конфигурация конфигурации) 'и получить доступ к' config' like 'configuration.getString (" initialName ")' –