- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我曾经使用 Play.current.configuration.getString('NAME_HERE')
在 Play 2.4.x 中获取 application.conf
变量,它运行良好在类、对象和伴随对象中也是如此。
现在,我在一个新项目中使用 Play 2.5.4 和 Scala,我不会使用这个 Play.current
,因为它已被弃用,但有一个使用 DI 的替代方案,像这样:
class HomeController @Inject() (configuration: play.api.Configuration) extends Controller {
def config = Action {
Ok(configuration.underlying.getString("db.driver"))
}
}
这个 DI 注入(inject)在类里面就像一个魅力,但在这个项目中,我需要在对象中获取变量 db.driver
?据我所知,对于对象我不能使用 DI。
也许使用 Guice 会有帮助?
最佳答案
你可以使用@Singleton
注解类代替object
trait Foo {}
@Singleton
class FooImpl @Inject()(configuration: play.api.Configuration)) extends Foo {
//do whatever you want
}
@Singleton
使类成为单例。感觉有点尴尬,因为 Scala 本身具有语法 object
来创建单例,但这是最简单且可能是最好的解决方案DI 成单例。
您也可以像下面的代码一样热切地创建单例。
bind(classOf[Foo]).to(classOf[FooImpl])asEagerSingleton()
更多详细信息,您可以查找Google Guice Wiki和 Playframework site
编辑
你怎么调用它和你在Playframework2.5中如何DI是完全一样的。
class BarController @Inject()(foo: Foo) extends Controller {
//Do whatever you want with Foo
}
Guice 基本上会在您每次 DI 时生成新的实例,一旦您放置 @Singleton
,Guice 将只使用一个实例。
DI 用于反高耦合。所以当你想使用你从另一个类定义的类时,你需要 DI 否则这些类是高度耦合的,最终会使你的单元测试代码变得更难。
仅供引用,您可以通过这种技术在 Play 之外使用它们。
Create an Instance of class which does DI via Playframework Guice Independently in Scala
关于scala - 如何使用 Scala 和 Play 2.5.x 在对象中获取 application.conf 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38612446/
我在play官方网站上关注了“Learn”。我使用的是window 7+Chrome。 D:\tester\play>dir Volume in drive D is APPLIS Volum
我有一个 play 1.2.5 应用程序,想将它部署到某个地方(这样我就可以为一些 OAuth 回调注册它)。我正在尝试将其推送到 heroku,但出现以下错误 -----> Play! app de
周围有两个配置文件,/etc/nginx/conf.d/default.conf和 /etc/nginx/nginx.conf,但是启用了哪一个呢?我运行的是 CentOS6.4 和 nginx/1.
我已经在Flume 1.6.0-cdh5.4.2(CentOS)中安装了cloudera VM 我认为配置和一切都很好 我运行了以下命令槽 flume-ng --conf /conf agent -
为了避免对我本地托管的 apache-tomcat Web 服务器上托管的 Web 应用程序进行点击劫持攻击,我正在尝试编辑“httpd.conf”文件以向其附加 X 选项。 用“sudo nano/
当我想为 intel Galileo 构建一个 yocto 镜像时,我按照网站中提到的这些说明进行操作 https://software.intel.com/en-us/blogs/2015/03/0
如果我有一个名为 mysite.conf 的文件存储在 /etc/nginx/conf.d .有没有办法获取字符串值'mysite'从conf文件中? 我想多次符号链接(symbolic link)一
为大学生编写一个应用程序——显示一个系列表,你点击一个,然后它会显示该系的类(class),点击一个,然后显示教授该类(class)的教授。 URL conf 有问题——我的应用程序不断将我重定向到错
当试图启动 apache 时 sudo /etc/init.d/apache2 restart 我得到了错误 apache2: Syntax error on line 260 of /etc/apa
我关注 this tutorial我找不到本教程第二步的 phpmyadmin.conf。我在/etc/apache2/conf-available/中只有以下文件 charset.conf othe
httpd.conf(/etc/httpd/conf/httpd.conf) 和 ssl.conf(/etc/httpd/conf.d/ssl.conf) 有什么区别 文件? 我正在尝试在我的站点上设
所有配置都被包含在内,并且 conf 测试也通过了。但是 Nginx 仍然提供来自 /usr/share/nginx/html 的默认 HTML。 , 而不是 conf.d 目录中 conf 文件的位
我是 psql 的新手,我遇到了一些我认为是错误放置的 .conf 文件引起的问题。当我尝试登录我之前创建的数据库时出现错误 $ psql corporation psql: could not co
我在 /etc/httpd/conf.d/vhost.conf 中的虚拟主机配置如下所示: NameVirtualHost * ServerName www.example.com
我遵循了教程:http://www.webopius.com/content/355/getting-mamp-working-with-ssl-on-os-x获取 ssl 证书。但是,我无法在 st
是否有一个 spark 属性,我们可以在执行 spark 提交时设置它指定 hadoop 配置路径,专门指向自定义 hdfs-site.xml 和 core-site.xml 文件 最佳答案 首选的方
在NameNode和JobTracker不是同一台服务器的hadoop集群(1.x版本)中,conf/masters和conf/slaves是需要在NameNode和JobTracker上同时指定还是
我从 Here 下载 Redis-x64-3.2.100.zip ,当我提取它时,我看到两个文件 redis.windows.conf 和 redis.windows-service.conf,我比较
我目前正在检查我们的 JBoss AS7.1 服务器配置,我在我们的 jboss/standalone/bin 目录中发现了这两个以前配置的文件: standalone.conf standalone
我一直在使用这个教程http://mpjexpress.blogspot.co.nz/2010/05/executing-and-debugging-mpj-express.html 、文本:步骤 1
我是一名优秀的程序员,十分优秀!