我正在尝试将儿童注射器的Guice功能与多重结合剂结合起来。例如:
public class Test {
public static void main(String[] args) {
Guice.createInjector(new FirstModule(), new SecondModule()); // works perfectly, returns set with 2 elements
Guice.createInjector(new FirstModule()).createChildInjector(new SecondModule
我正在将一个为Java 7编写的应用程序升级到版本8,它使用Guice将配置值注入对象的构造函数。然而,在提高Java版本之后,我现在在运行单元测试时得到了这个神秘的错误:
java.lang.RuntimeException: com.google.inject.CreationException: Guice creation errors:
1) No implementation for java.util.Optional<java.lang.Boolean> annotated with @Config(value=AsyncHttpClientConfigProvi
我有这个接口和简单的实现:
public interface Data {
}
import java.nio.file.Path;
import javax.annotation.Nullable;
import javax.inject.Inject;
import com.google.inject.assistedinject.Assisted;
public class SimpleData implements Data {
@Inject
public SimpleData(@Assisted @Nullable Path path) {
}
我在一个项目中看到了几种用法,如下所示(我发布了代码的精华,以便更容易阅读):
public static void main(Strings[] args) {
Injector i = Guice.createInjector(new MyModule());
i.getInstance(Foo.class);
}
class Foo {}
class MyModule extends AbstractModule {
@Provides
public Foo getFoo(Injector injector) {
return new
我希望在类中有一个provider成员,当'get‘被调用时,每次都会给我一个新的对象。我该怎么做呢?
public class GuiceInjectionTest
{
@Inject
Provider<MyClass> provider;
public Provider<MyClass> get()
{
//I want a new instance every time here that is injected by guice
return provider.get()
}
}
注意:我希望这个新实例由Guice
在我的项目中,我在任何地方都使用依赖注入,在两种情况下我使用临时工厂。首先,当我想确切地控制何时创建实例时,我注入一个工厂而不是一个实例:
// WidgetA must be created before WidgetB, because of the side-effects
// on the container.
WidgetAFactory.make(container);
WidgetBFactory.make(container);
另一种情况是,构造函数采用可注入值和运行时值的混合。而不是使用:
@Inject
WidgetC(
Container,
@Widg
我使用PlayFramework (java)和Guice作为DI以及pac4j。这就是基于的Guice模块的样子。在代码中,我传递一个CustomAuthentication,在其中注入一个SericeDAO对象,但是它始终是空。
最初的想法是因为我正在创建CustomAuthenticator,而不是让guice创建它,因此它是空的。我还尝试将CustomAuthenticator直接注入安全模块-- customAuthenticator对象随后为null。不知道我做错了什么。
public class SecurityModule extends AbstractModule {
我希望能够使用Guice注入泛型接口的泛型实现。
public interface Repository<T> {
void save(T item);
T get(int id);
}
public MyRepository<T> implements Repository<T> {
@Override
public void save(T item) {
// do saving
return item;
}
@Override
public T get(int id) {
// get item a
我是Google Guice的新手,我正试图思考如何在我的特定场景中使用它。我正在构建一个非常复杂的服务客户机,而且(我相信)确实需要正确实例化Builder模式。因为这个客户机最终会被打包到自己的JAR库中,所以我希望Guice在幕后处理DI。下面是我的代码的一个非常简化的版本:
public interface MyClient {
public FizzResource getFizzResource();
public BuzzResource getBuzzResource();
public FooResource getFooResource();
}
我正在复习Guice。假设我有以下设置:
public interface IsEmailer {...}
public interface IsSpellChecker {...}
public class Emailer implements IsEmailer {
@Inject
public class Emailer(final IsSpellChecker spellChecker)....
}
public class FrenchSpellChecker implements IsSpellChecker {....}
public class E
我以前使用过标准的工厂模式方法来创建类的实例(实现一个特定的接口),使用一个工厂类,它有一个" create“方法,它根据传递给它的参数返回正确的实例(示例片段如下所示):
public class SimpleFactory {
public static SimpleObjectInterface getSimpleObject(int data) {
SimpleObjectInterface toReturn;
switch(data) {
case 1:
toReturn = new
我有一个泽西资源,我想用JUnit测试一下。该资源使用Guice提供程序来注入某些字段:
@Path("/example/")
class ExampleResource {
@Inject
Provider<ExampleActionHandler> getMyExampleActionHandlerProvider;
@GET
@Produces(MediaType.APPLICATION_JSON)
public List<ExamplePojo> getExampleList() {
Ex