Я новичок в Play framework. Я хотел прочитать файл, который находится в папке conf. Поэтому я использовал Play.application().classloader().getResources("Data.json").nextElement().getFile()
Но я узнал, что play.Play теперь устарел. Что я могу использовать для чтения файла. Я прочитал статью this и не могу понять, что она говорит.Что является альтернативой Play.application()
ответ
Просто инъекционные приложения в классе, где п это. Предположим, что он находится в контроллере:
import play.Application;
import javax.inject.Inject;
import javax.inject.Provider;
class YourController extends Controller {
@Inject
Provider<Application> app;
public Result someMethod() {
// (...)
// File is placed in conf/Data.json
InputStrem is = app.get().classloader().getResourceAsStream("Data.json");
String json = new BufferedReader(new InputStreamReader(is))
.lines().collect(Collectors.joining("\n"));
return ok(json).as("application/json");
}
}
Это работает. Я думаю, что мне нужно узнать об инъекциях зависимостей, чтобы узнать, что на самом деле происходит. –
Может ли кто-нибудь показать мне правильный путь для поиска такого решения. Потому что чтение документов снова и снова не помогло мне. –
В статье о миграции, которую вы читаете, сосредоточена на миграции Play из глобального состояния в Injection Dependency как средство для подключения зависимостей - следовательно, удаление этих статических методов. Если вы еще этого не понимаете, тогда не беспокойтесь.
Предполагая эту запись конфигурации (или в application.conf или другой файл импортируется в приложение .conf: -
my_conf_key = "some value"
Ниже приведен пример того, чтобы искать свойство конфигурации с использованием 2.5: -
import play.api._
import play.api.mvc._
import javax.inject.Inject
class TestConf @Inject() (conf: Configuration) extends Controller {
def config = Action {
Ok(conf.underlying.getString("my_conf_key"))
}
}
печатает: -
some value
Вы хотите добавить мои данные в файл конфигурации? –
- 1. Что является альтернативой getBackgroundDataSetting
- 2. Что является альтернативой PackageAdmin.getFragments
- 3. Что является альтернативой create_proc_entry()
- 4. Что является альтернативой System.Data.OracleClient.OracleCommand?
- 5. Что является альтернативой для Element.createShadowRoot()?
- 6. Что является альтернативой в C#
- 7. Что является альтернативой @RunWith (JMock.class)?
- 8. Что является альтернативой SQL Cursors
- 9. Что является альтернативой событию TabControl.ControlRemoved?
- 10. Что является альтернативой апплетам java?
- 11. Что является лучшей альтернативой strncpy()?
- 12. , что является альтернативой set_difference в C++
- 13. C#, что является альтернативой для настроек
- 14. Что является альтернативой для устаревших com.apple.eawt.ApplicationListener
- 15. , что является альтернативой `быстрой $ G` в Cygwin
- 16. Что является альтернативой \ n в python?
- 17. Что является альтернативой статическому в интерфейсе Java
- 18. В C, что является безопасной альтернативой sscanf?
- 19. Что является лучшей альтернативой для QueryString
- 20. Что является лучшей альтернативой для jQuery thickbox
- 21. Что является альтернативой для AmazonDynamoDBClient, который устарел?
- 22. Что является альтернативой getContentAsString() из API DriveApp?
- 23. Что является альтернативой встроенной функции Matlab: strrep
- 24. Что является альтернативой QueryDescriptor гнезда 2.x
- 25. Что является альтернативой os.loadavg() для Windows
- 26. Что является альтернативой функции Paint и repaint?
- 27. Что является альтернативой FreeAndNil в Delphi 7?
- 28. что является альтернативой для внутреннего определения
- 29. что является альтернативой exit(); без разбивки страницы
- 30. TYPO3 v6.2x GeneralUtility getUniqueName, что является альтернативой?
какая версия вы используете? Вы отметили сообщение с v2.3, но play.Play устарели в 2.5 – Nio
@Nio Спасибо, очень. Я исправил это. Я использую 2.5 –