我是Play框架的新手。我想读取conf文件夹中的文件。所以我用Play.application().classloader().getResources("Data.json").nextElement().getFile()
但我知道play.Play现在已被弃用。我可以用什么来读取文件。 我读this文章,很难理解它说什么。Play.application有什么替代方法()
回答
这里您将n刚注入的类中的应用去掉它。假设它在一个控制器中:
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");
}
}
它的工作。我想我必须了解依赖注入来知道实际发生了什么。 –
任何人都可以向我展示找到这种解决方案的正确途径。因为反复阅读文件对我没有帮助。 –
您阅读的2.5迁移文章重点介绍了Play从Global状态到依赖注入的迁移,作为连接依赖关系的手段 - 因此删除了这些静态方法。如果你还没有真正理解这一点,那么别担心。
假设此配置条目(在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. 弃用com.apple.eawt.ApplicationListener的替代方法有什么替代方法
- 2. 使用phpMyAdmin有什么替代方法?
- 3. 使用global.asax有什么替代方法?
- 4. wmctrl有什么替代方法?
- 5. Java的HttpMethod中的回收方法有什么替代方法?
- 6. Ajax有什么方法或替代方法?
- 7. session_register($ var)的替代方法是什么?
- 8. Response.Redirect()asp.net的替代方法是什么?
- 9. 什么是替代方法`__call`
- 10. typeFactory.arrayType(xxx)的替代方法是什么?
- 11. Python中的替代方法是什么?
- 12. CSharpOptParse还有什么替代方案?
- 13. SWT TabFolder有什么替代方案?
- 14. InstallShield有什么好的替代方案?
- 15. 论坛有什么替代方案?
- 16. pinax有什么替代方案?
- 17. IRB有什么替代方案?
- 18. 有没有什么方法可以替代iframe?
- 19. 还有什么其他的log4net日志记录替代方法?
- 20. 在Windows下运行的PHPLint有什么替代方法?
- 21. Google广告不支持HTTPS。还有什么替代方法?
- 22. 在ASP.NET MVC中,POST-redirect-GET有什么替代方法?
- 23. 如何过滤FolderBrowserDialog,或者有什么替代方法?
- 24. AJAX控件工具包有什么替代方法ValidationCallOutExtender
- 25. 对于C#4.0中昂贵的Enum.IsDefined(),有什么替代方法?
- 26. php_sapi_name()有什么替代方法适用于Google App Engine?
- 27. facebook java api:什么是所有feed_ *方法的替代品?
- 28. 在SQL Server 2008中使用游标有什么替代方法?
- 29. 还有什么替代方法可用于+ [LSApplicationWorkspace defaultWorkspace]和-allApplications?
- 30. J2ME中String.Contains()方法的替代方法是什么?
你正在使用哪个版本?您已经用v2.3标记了帖子,但play.Play在2.5 – Nio
中已弃用@Nio非常感谢您。我纠正了它。我正在使用2.5 –