问题标签 [guice]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
dependency-injection - 当有两个不同的构造函数时如何用 Guice 注入?
Total Guice noob here,阅读了几篇文章并观看了介绍视频,仅此而已。
这是我试图“guicifiy”的简化旧代码。不能完全弄清楚如何,因为(据我所知),我只能@inject
- 注释两个构造函数之一?调用类如何创建一个或另一个实例?还是我必须以某种方式重构它?
java - JSR 330 和 Guice 互操作性
有人对 JSR 330 vs Guice 有经验吗?据我所知,Guice 不是 JSR 330 的实现,但如果它是 Hibernate 和 JPA 之类的东西,则该实现支持 API 中没有的一堆附加功能。由于我已经在使用 GWT-Dispatch、Warp-persist guice-serlvet 等,通过迁移到支持 JSR 330 的 EJB 容器会有什么好处吗?
dependency-injection - Google Guice 的内置绑定是如何工作的?
我第一次尝试了 Google Guice,发现它非常好。但是,当我到达内置绑定部分时,我不理解这些示例。
对我来说,看起来我可以像拦截器一样使用它来记录日志,但我不知道如何。
你们中有人可以解释这种类型的绑定以及我如何使用它吗?也许(如果可能的话)用它来记录?
google-app-engine - Guice 和 JSF 2
我正在尝试使用 Guice 注入 JSF 托管 bean 的属性。这一切都在 Google App Engine 上运行(这可能很重要,也可能不重要)
我已按照此处的说明进行操作:
http://code.google.com/docreader/#p=google-guice&s=google-guice&t=GoogleAppEngine
一个问题在于第一步。我不能子类化 Servlet 模块并在那里设置我的 servlet 映射,因为 Faces 由 javax.faces.webapp.FacesServlet 处理,该 javax.faces.webapp.FacesServlet 是 Servlet 的子类,而不是 HttpServlet。因此,我尝试将我的 servlet 配置留在 web.xml 文件中,并在第二步中描述的上下文侦听器中创建注入器时简单地实例化一个新的 ServletModel() 以及我的业务模块。
完成所有这些之后,连同 web.xml 配置,我的托管 bean 没有注入任何属性。方法如下
所以,我想知道是否有让 Guice 注入 JSF 托管 bean 的技巧?我显然不能使用构造函数注入,因为 JSF 需要一个无参数构造函数来创建 bean。
java - Google Guice 与 PicoContainer 的依赖注入
我的团队正在研究依赖注入框架,并试图在使用 Google-Guice 和 PicoContainer 之间做出决定。
我们正在我们的框架中寻找几件事:
- 一个小的代码足迹 - 我所说的一个小的代码足迹是我们不希望在我们的代码库中到处都是依赖注入代码。如果我们需要在未来进行重构,我们希望它尽可能简单。
- 性能 - 每个框架在创建和注入对象时有多少开销?
- 易于使用 - 是否有很大的学习曲线?我们是否必须编写大量代码才能使一些简单的工作正常工作?我们希望配置尽可能少。
- 社区规模 - 较大的社区通常意味着项目将继续维护。我们不想使用框架并且必须修复我们自己的错误;)此外,我们在此过程中遇到的任何问题都可以(希望)由框架的开发人员/用户社区回答。
将不胜感激将两个框架与所列标准进行比较。任何有助于比较两者的个人经历也将非常有帮助。
免责声明:我对依赖注入相当陌生,所以如果我问了一个与本次讨论无关的问题,请原谅我的菜鸟。
java - 一起使用 Guice 和 JMock 的最佳方式是什么?
我已经开始使用 Guice 对项目进行一些依赖注入,主要是因为我需要在远离单元测试的一层注入 mocks(目前使用 JMock),这使得手动注入非常尴尬。
我的问题是引入模拟的最佳方法是什么?我目前拥有的是在单元测试中创建一个满足依赖项的新模块,并将它们与如下所示的提供程序绑定:
在构造函数中传递模拟,因此 JMock 设置可能如下所示:
有没有更好的办法?我知道 AtUnit 试图解决这个问题,虽然我错过了它如何自动神奇地注入一个像上面一样在本地创建的模拟,但我正在寻找一个令人信服的理由,为什么 AtUnit 是这里的正确答案(其他比它在不更改测试的情况下更改 DI 和模拟框架的能力)或者是否有更好的解决方案可以手动完成。
logging - 在使用 Google Guice 时遵守日志记录标准?
Logger的 Java 文档指出记录器名称应基于类名。Google Guice 在BinderImpl.java中处理这个问题,它执行以下操作:
但是,由于它为每个类都获取了一个新的记录器,因此我将无法访问可能已添加到记录器中的任何处理程序。
处理在记录器中使用类名和应用一组标准处理程序的最佳方法是什么?
guice - 实例化对象后Guice调用init方法
实例化给定类型的对象后,是否可以告诉 Guice 调用某个方法(即 init())?
我在 EJB 3(和 Spring)中寻找类似于 @PostConstruct 注释的功能。
jsf - JSF,使用 aopalliance MethodInterceptor 记录异常
我想记录在提供 JSF 文件时抛出的异常,就像在我们的 Web 应用程序中记录其他异常一样。
我们用 Guice AOP 注释带有记录异常的类,@LoggedExceptions
并且 aMehtodInterceptor
与这些类匹配(这对于 aopalliance 的其他实现应该非常相似......)
主要问题是,方法拦截器不起作用。如何拦截对 JSF 支持代码的方法调用?
java - 在 Java 中实现动态插件
我想在 Java 应用程序中实现动态插件功能。理想情况下:
- 该应用程序将定义一个
Plugin
具有类似方法的接口getCapabilities()
。 - 插件将是一个 JAR
pluginX.jar
,其中包含一个类PluginXImpl
实现Plugin
(可能还有其他一些)。 - 用户将放入
pluginX.jar
一个特殊的目录或设置一个指向它的配置参数。用户不一定必须包含pluginX.jar
在他们的类路径中。 - 应用程序会找到
PluginXImpl
(可能通过 JAR 清单,也可能通过反射)并将其添加到注册表中。 - 客户端可以获取 的实例
PluginXImpl
,例如,通过调用类似 的方法getPluginWithCapabilities("X")
。用户不一定必须知道插件的名称。
我有一种感觉,我应该能够用peaberry做到这一点,但我无法理解文档。我花了一些时间学习 Guice,所以我的首选答案不是“使用Spring Dynamic Modules ”。
谁能给我一个简单的想法,告诉我如何使用 Guice/peaberry、OSGi 或纯 Java 来做这件事?