玩 Java 2.0/2.1 和依赖注入

2024-07-04

我们有一个新的 Play 2.0 项目,我们计划在添加一些复杂的第 3 方集成代码时引入 DI。

Play 2.0 有一个 Guice 插件,但看起来它将在 2.1 中过时,而且我有预感 2.1 已经不远了。

https://github.com/typesafehub/play-plugins/tree/master/guice https://github.com/typesafehub/play-plugins/tree/master/guice

Guice 是 Play 2.0/2.1 的安全选择还是我们应该考虑其他选择?


我会选择 2.1 版本,以及来自 Global 对象的新控制器实例化。

这是来自的 Guice 示例doc https://github.com/playframework/Play20/blob/master/documentation/manual/javaGuide/main/inject/JavaInjection.md:

  import play.GlobalSettings;

  import com.google.inject.Guice;
  import com.google.inject.Injector;

  public class Global extends GlobalSettings {

    private static final Injector INJECTOR = createInjector(); 

    @Override
    public <A> A getControllerInstance(Class<A> controllerClass) throws Exception {
      return INJECTOR.getInstance(controllerClass);
    }

    private static Injector createInjector() {
      return Guice.createInjector();
    }

  }

您必须为这些控制器声明特殊的路由,并使用特殊的@:

GET    /myUrl       @controllers.MyController.myMethod()

您还可以使用 Spring 看一下这个演示:https://github.com/guillaumebort/play20-spring-demo https://github.com/guillaumebort/play20-spring-demo

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

玩 Java 2.0/2.1 和依赖注入 的相关文章

  • 为什么Map有loadFactor而List没有呢?

    当用 Java 创建 Map 或 List 时 它们的默认初始容量都是 10 它们的容量会随着新元素的增加而增长 但是 List 仅在添加第 11 个元素时才会增长 而 Map 在添加第 8 个元素时已经增长 发生这种情况是因为 Map 有
  • Java Web 应用程序的关闭钩子

    我需要在 java web 应用程序停止或 tomcat 停止时保存一些数据 如何才能做到这一点 编辑 如果我使用 jvm shutdown hook 有什么缺点吗 使用一个实现的类ServletContextListener https
  • 测试最终字段的初始化安全性

    我试图简单地测试 JLS 保证的最终字段的初始化安全性 这是为了我正在写的一篇论文 但是 根据我当前的代码 我无法让它 失败 有人可以告诉我我做错了什么 或者这只是我必须一遍又一遍地运行然后在一些不幸的时机看到失败的事情吗 这是我的代码 p
  • Java:什么是“for (;;)”[重复]

    这个问题在这里已经有答案了 有人可以帮我解释一下这条指令吗 为了 我遇到过几种这样的标记 比如在 facebook 的 ajax 代码和 Java 的并发内容中 无限循环 for 循环的三个部分中的每一个部分 for x y z 是可选的
  • 在资源控制器内使用多个服务的最佳方法是什么?

    我有一个调用三个服务的控制器 public class ProductController Autowired private AccountService accountService Autowired private ProcessS
  • 在 MacOS 命令行上使用 Android Studio 内置 Java

    这里有很多关于在 Mac 上安装 Java 以及让 Android Studio 使用正确版本的信息 很多已经过时 但是最近版本的 Android Studio 2 2 及更高版本 提供了自己的 Java 对于大多数 Mac 用户来说 没有
  • Java自动将集合转换为参数数组?

    我知道Java 数组参数语法可以接收数组作为参数 或者只是传递给方法的许多参数 然而 我注意到它对于集合也是如此 public static void main String args Collection objects new Arra
  • HBase 无法在 Windows 上以独立模式启动

    我下载了HBase 1 0 1在我的 Windows 机器上 无法启动它 我收到以下错误消息 C Users admin Downloads hbase 1 0 1 gt bin start hbase cmd Error Could no
  • **线程“main”中的异常java.util.InputMismatchException**

    我正在尝试从 txt 文件中获取一些记录并将其放入以下 Java 程序的数据库中 package Java Demo import java sql import java util import java io public class
  • Spring Boot,JPA 错误:“通过 JDBC 语句执行 DDL 时出错”

    我正在尝试使用一个非常基本的 到目前为止 Spring Boot 应用程序在我的 MySQL 数据库中添加一个条目 我使用了在网上找到的一些零碎内容 这是我试图遵循的代码 netgloo spring boot samples spring
  • 如何在 ADF Oracle 11gR1 中的对话框窗口中的弹出窗口中刷新表

    我正在研究显示一个带有搜索表的弹出窗口的要求 当用户单击弹出窗口中的搜索按钮 提供输入文本框 时 需要使用新的数据集刷新搜索表 我创建了一个populateSearchTable 通过填充数组中的值来生成表的方法deviceListArra
  • Java JDK中有并发List吗?

    如何创建一个并发 List 实例 在其中可以按索引访问元素 JDK 有我可以使用的类或工厂方法吗 ConcurrentLinkedQueue 如果您不关心基于索引的访问 而只想要列表的插入顺序保留特性 那么您可以考虑java util co
  • 寻找关于 JIDE 的反馈 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • “?” 是什么意思?在Java中是什么意思? [复制]

    这个问题在这里已经有答案了 我不知道问号是什么 在java中代表 我正在做一个小程序 一个Nim游戏 正在寻找一本书寻求帮助 并看到这样的说法 int pinsToTake min gt 2 2 1 看不懂 什么会 代表 它可能与 if 语
  • Jenkins 中的算法协商失败 SSH

    我正在尝试从 Jenkins ssh 到本地服务器 但抛出以下错误 SSH Exception Algorithm negotiation fail com jcraft jsch JSchException Algorithm negot
  • 通过解析异常获取方法名及其包含的参数

    当我收到异常时 例如IOException or RunTimeException 我只能知道班级里的行号 首先是我的问题 是否可以通过异常检索方法名称 其次 是否可以通过行号检索该方法以及该方法的参数 附注我需要知道确切的方法名称及其参数
  • 使用 Lucene 提取英语单词词干

    我正在 Java 应用程序中处理一些英文文本 我需要对它们进行词干处理 例如 从文本 amenities amenity 中我需要获取 amenit 该函数如下所示 String stemTerm String term 我找到了 Luce
  • 如何调节日志指令随时间产生的打印输出量?

    如何将程序日志打印输出限制为 Y 秒内最多 X 个打印输出 使用 java util logging 进行服务器端编程 我的代码有很多信息 警告和错误语句 例如 s logger logp Level WARNING myClassName
  • CacheStoreMode USE 和 REFRESH 有什么区别

    javadoc 为缓存存储模式 http docs oracle com javaee 6 api javax persistence CacheStoreMode html区分我无法真正理解的一点 javadoc 为USE mode 从数
  • 使用部署在 Tomcat 中的 Web 应用程序关闭 Tomcat

    我对我的 webapp 开发中遇到的 tomcat 操作有一些疑问 有什么办法可以从部署在tomcat中的web应用程序中关闭tomcat本身吗 tomcat 是否在一个 JVM 或单个 JVM 中运行其所有 webapps war 或者在

随机推荐

  • 如何将 Jetty 与 Let's Encrypt 证书结合使用?

    我想使用来自的证书让我们加密 https letsencrypt org拥有大量 Jetty 服务器 问题之一是 Let s Encrypt 的证书有一个寿命 90 天 https letsencrypt org 2015 11 09 wh
  • LinearLayout 和 LinearLayoutCompat 有什么区别

    I know LinearLayoutCompat被意识到为我们提供了一些更新的方法 这些方法被添加到较高级别的 Android 到较低级别的 Android 中 我的问题是这个方法 linearLayout setPaddingRelat
  • 找不到node.js /socket.io/socket.io.js

    我不断收到错误消息 socket io socket io js 404 未找到 未捕获的引用错误 io 未定义 我的代码是 var express require express http require http var app exp
  • 无法使用 Grails DetachedCriteria 获取“count”和“groupBy”

    我有一个用于查询的域类 TourIndex Long tourId String country String location int availability more fields 我们使用一系列 动态 条件构建器来基于一系列配置进行
  • 在 Lyx 文档中插入编程代码

    在 Lyx 文档中插入 python C 代码的最佳方法是什么 该代码是少于 20 行的小示例 我的 Lyx 文档使用 Book 文档类 Orjanp 我更喜欢将列表作为子文档插入 因此直接从文件中获取代码 您可以进一步编辑并保持更新 您可
  • “PlaintextCorpusReader”对象没有属性“文件”

    我正在关注 NLTKtutorial http web mit edu 6 863 www fall2012 nltk ch1 3 pdf我在 Python 交互式 shell 中遇到了这个错误 而本书显示了另一个结果 知道如何解决这个问题
  • 当设备安装在 Windows/Mac 上时,在外部存储上创建的文件不会显示

    我有一个简单的应用程序 尝试将一些数据保存到 Android 设备 Nexus 4 上的外部存储 以便稍后在 PC Windows 或 Mac 上检索 写入成功 但当我尝试使用 Mac 上的 Android 文件传输或 Windows 上的
  • setadapter后获取ListView高度

    好吧 我试图在更改数据后获取列表视图高度 但它总是返回先前的高度 而不是实际的高度 所以当我设置 setadapter 时 它会得到旧值 例如 ActualHeight 100 Change data filter gt NewHeight
  • AbstractSecurityWebApplicationInitializer 与 AbstractAnnotationConfigDispatcherServletInitializer

    我正在尝试为基于 Spring 3 2 8 的纯 Java 配置应用程序添加安全性 我正在按照说明进行操作http docs spring io spring security site docs 3 2 2 RELEASE referen
  • HTML 中的 onBlur 和 onChange 属性有什么区别?

    何时叫一个人与另一个人比赛 是否存在 onChange 会被调用但 onBlur 不会被调用的情况 The onBlur当您离开对象但不一定更改其值时 会触发该事件 The onChange仅当您更改字段的值并且它失去焦点时才会调用事件 您
  • 如何完全杀死 Android 线程?

    我有一个服务 它有自己的线程在后台运行 我想终止该服务 包括线程 我像这样创建了线程并运行它 public class DaemonService extends Service private DaemonThread thread cl
  • 加载类和实例化类之间的区别

    有人可以解释一下类加载和实例化类之间的区别吗 当我们加载带有静态变量的类时 它是否也会在加载类的同时实例化 毕竟静态代码是类的一部分而不是它的单独实例 如果有人提供一个例子来帮助我更好地理解这一点 那将会很有帮助 这是一些很好的解释 带有示
  • 在 .NET 4.5 中为 websocket 握手设置自定义标头

    我正在尝试设置 C 客户端与第三方服务器的 WebSocket 连接 当我用 JS 客户端连接到同一服务器时 它建立连接并且一切正常 C 客户端连接到服务器 但由于某种未知原因 服务器响应 500 代码 使用 WireShark 进行调试表
  • 流行的自定义滚动条的顽固问题

    代码更新 http mawk3y net test brand php id 12 http mawk3y net test brand php id 12 原来的jquery插件在这里http manos malihu gr tuts j
  • 将一个服务注入另一个服务

    我有一个 MVC 项目 它有两个服务 OrganizationService 和AgreementService 我的问题是某些组织属于组 父结构 在这种情况下 我需要获取属于其中任何组织的所有协议群组 我的 OrganizationSer
  • 查找与 id 匹配的最接近时间戳的行,并添加具有值的行

    我有 2 个数据帧 并且想根据最近的日期时间和匹配 ID 在 df1 中插入一行 其中包含 df2 中的值 df 示例如下 df1 storeID datetime 0 111 2020 01 01 00 50 00 1 222 2020
  • 如何在 Swift 中将数据转换为双精度型、整数型和字符串型等类型?

    我正在努力在 iOS Swift 中为 shapefile 一种 GIS 格式 与这个问题不是特别相关 构建一个自定义文件打开器 这些文件有一个 100 字节长的标头 我可以将其读入 4 字节数组 其中存储我想要的信息 我可以将这些数组转换
  • 分割字符串需要数组声明

    string myStr part1 part2 要分割这个简单的字符串 Split 方法需要传递带有参数的数组 真的吗 为什么我不能直接指定myStr Split 如果我不需要的话 为什么他们希望我声明 char 数组 任何人都可以解释我
  • 打开 Excel 2016 文件失败,HRESULT:0x800706BE

    用于打开现有 Excel 文件的简单 VB NET 代码在打开命令时始终失败 并出现以下错误 远程过程调用失败 HRESULT 异常 0x800706BE 我在 Stack Overflow 和 Microsoft 网站上搜索了这个错误 似
  • 玩 Java 2.0/2.1 和依赖注入

    我们有一个新的 Play 2 0 项目 我们计划在添加一些复杂的第 3 方集成代码时引入 DI Play 2 0 有一个 Guice 插件 但看起来它将在 2 1 中过时 而且我有预感 2 1 已经不远了 https github com