我正在尝试用Guice注入泛型类型。我有存储库
public class Cursor<T> {
@Inject
protected Repository<T> repository;
所以当我创建光标时
您必须使用TypeLiteral
:
import com.google.inject.AbstractModule;
import com.google.inject.TypeLiteral;
public class MyModule extends AbstractModule {
@Override
protected void configure() {
bind(new TypeLiteral<Repository<User>>() {}).to(UserRepository.class);
}
}
获取游标的实例
import com.google.inject.Guice;
import com.google.inject.Injector;
import com.google.inject.Key;
import com.google.inject.TypeLiteral;
public class Main {
public static void main(String[] args) {
Injector injector = Guice.createInjector(new MyModule());
Cursor<User> instance =
injector.getInstance(Key.get(new TypeLiteral<Cursor<User>>() {}));
System.err.println(instance.repository);
}
}
更多详细信息请参见常见问题解答。
问题内容: 我正在尝试使用Guice注入通用类型。我的Repository 位于Cursor类中。 因此,当我创建Cursor 时,我还希望Guice将我的存储库注入Repository 。有没有办法做到这一点? 问题答案: 您必须使用: 要获取的实例,则需要: 在FAQ中有更多细节。
可以自动绑定泛型类吗?考虑一下: 通用接口: 长子类型: 字符串子类型: 自定义模块:公共类CustomModule扩展AbstractModule{ } 主要的 是否可以以某种方式(例如:基抽象类、反射或其他)自动绑定
我正在尝试在Guice进行辅助注射。 这是我的实现。 工厂界面。 吉思模块: 我得到错误:“DaoFactory不能用作键;这一点没有充分说明”。 我应该如何配置FactoryModuleBuilder? 我的目标是在运行时使用DaoFactory获取Dao的类型化实例
我正在努力实现DI,特别是使用guice的构造函数注入。我很难理解如何将泛型的类类型注入到构造函数中。 我的课程如下: 我可以在运行时使用guice将类的类型注入构造函数吗?简而言之,我可以使用guice注入Foo构造函数吗?
问题内容: 我有一个通用的抽象模板类。我以为如果创建特定于类型的生产者,则可以直接在通用类中注入一些DAO服务。但是我不能。 为什么?我该如何解决? 当我注入一个例如它完美地工作。但是没有泛型… 问题答案: 当您要求 容器知道您要一个类型为的bean 。如果存在这样的bean并且其类型信息已知,则容器可以满足注入。例如,类型信息保留在带注释的方法中 容器使用反射来检索该参数化的类型,并将其与请求的
假设我们有这样一个豆子: 反序列化过程如下所示: 我能让杰克逊把“某个班级”注入我的豆子吗?我认为,注入类型引用本身也是可以的。