草庐IT

Java 泛型错误 : inconvertible types from command line compiler

我有一些使用泛型的Guice绑定(bind)代码,这些代码可以在Eclipse的编译器中正常编译和运行,但不能在Java(命令行)编译器中正常运行。我升级到最新的(1.7.0_01)JavaSDK,但仍然出现以下错误。[error]...\BindCategorySelectorActivity.java:42:error:inconvertibletypes[error](Class>>)CategoryDataProvider.class);[error]^[error]required:Class>>[error]found:Class[error]1error[error]{f

java - Guice eager/lazy 单例实例化

我在理解Guice的单例实例化的工作原理时遇到了一些麻烦。我已经阅读了可用的文档(此处-http://code.google.com/p/google-guice/wiki/Scopes),但我仍然无法弄清楚一些事情:我已将Guice与Tomcat集成,并在ServletModule中设置了一些绑定(bind):bind(MyServlet.class).asEagerSingleton();serve("myUrl").with(MyServlet.class);serve("myOtherUrl").with(MyOtherServlet.class);(其中MyOtherServ

java - 如何在需要注入(inject)实例的 Guice 中进行动态绑定(bind)?

我想创建一个动态绑定(bind)实例到命名注释的模块。用例是我想自动将配置中的值与属性文件中的键绑定(bind)为@Named值。但是配置绑定(bind)在不同的模块中,所以我需要注入(inject)配置。我看过的解决方案是:在configure()方法中绑定(bind)。此方法未注入(inject),无法获取基础配置。使用提供者/@Provides。提供者只绑定(bind)一个实例。使用MultiBinder。我的用例与此扩展提供的用例略有不同。多重绑定(bind)允许您分别绑定(bind)多个实例,然后将它们作为更复杂的包含类型的Collection注入(inject)。我想分别绑

java - Play 2.0/2.1 for Java 和依赖注入(inject)

我们有一个新的Play2.0项目,我们计划在添加一些复杂的第3方集成代码时引入DI。Play2.0有一个Guice插件,但看起来它在2.1时会过时,我有预感2.1已经不远了。https://github.com/typesafehub/play-plugins/tree/master/guiceGuice是Play2.0/2.1的安全选择还是我们应该考虑其他选择? 最佳答案 我会选择2.1版本,以及来自全局对象的新Controller实例。这是来自doc的Guice示例:importplay.GlobalSettings;impor

java - Guice @Transactional 不启动事务

我已经开始使用Guice方法级事务,如所述here.我有这样的消息@InjectprivateEntityManagerentityManager;@TransactionalpublicUserSessioncreateSession(Useruser,Stringbrowser){UserSessionsession=newUserSession(user,browser);entityManager.persist(session);}从简短的描述来看,我认为wis应该足够了。但是我得到一个错误,因为没有交易开始。仅当我自己开始并提交时它才有效。该对象是由Guice在我的应用程序

java - 处理不同环境的注解驱动的依赖注入(inject)

我认为很多专业人士不转投注解驱动依赖注入(inject)的主要原因是它不支持开发/测试/生产环境之间的切换。在许多情况下出于开发目的,您不仅使用不同的服务(以及它们的连接),而且有时您需要模拟它们或创建Dummy实例。昨天我想出了一个带有Spring注解的解决方案:@Value("#{${env}=="production"?realService:dummyService}")privateSomeServiceservice;...这应该可以,但不是很好。我会对您的解决方案或论点非常感兴趣:为什么这不是一个真正的问题;-)欢迎使用Guice、Spring或任何其他工具。最初的问题是

java - 带有类型参数的 Guice 模块

我花了一些时间想知道是否可以编写一个guice模块它本身用类型T参数化并使用它的类型参数指定绑定(bind)。就像这个(不工作的)例子:interfaceA{}classAImplimplementsA{}interfaceB{}classBImplimplementsB{}classMyModuleextendsAbstractModule{@Overrideprotectedvoidconfigure(){bind(newTypeLiteral>(){}).to(newTypeLiteral>(){});bind(newTypeLiteral>(){}).to(newTypeLit

java - 确保模块在 Guice 中只加载一次

不得不处理Guice,我想知道我应该如何处理模块方面的依赖关系。在Guice中,每个模块都由一个实例提供。因此,如果我有一个需要特定服务的模块,它会创建添加绑定(bind)到该服务的模块并安装它(binder.install(module))。现在我有两个独立的模块,完全可以独立使用,并且都安装相同的数据库模块。独立使用这两个模块没有问题,但如果在同一个应用程序中使用这两个模块会怎样?数据库模块将由两个模块独立加载,这是不正确的。有没有办法询问Binder某个类型是否已经有绑定(bind)?我不能使用getProvider来检查它,因为返回的只是一个LookupProvider,无论是

java - 装饰器模式和@Inject

在使用Spring基于XML的配置时,很容易装饰同一个接口(interface)的多个实现并指定顺序。例如,日志记录服务包装了交易服务,而交易服务又包装了实际服务。如何使用javax.inject注释实现同样的效果? 最佳答案 您可以使用@Named和@Inject来指定要注入(inject)的bean。一个带有注入(inject)服务的简单示例:publicclassServiceTest{@Inject@Named("transactionDecorator")privateServiceservice;}以及对应的事务装饰器类

java - Guice:我是否必须使用@Inject 来注释对象图的每个类?

我想介绍Guice用于现有的中型项目。对于我的需求,我需要一个自定义范围(session太大,而对我的项目来说请求太小)。想象一下,我请求guice为我提供A类的实例,它与许多其他类有直接和间接的依赖关系(组合).我的自定义提供程序能够提供用作所有相关类的构造函数参数的类的实例。问题:我真的必须在所有相关类的构造函数上放置一个@Inject(和我的自定义范围)注释,或者有什么方法可以指导只需要我请求的顶级类上的这些注释,并且所有进一步的依赖关系都通过“询问”我的自定义范围来解决依赖类型的提供者?如果这是真的,这将增加引入Guice的工作量,因为我必须调整1000多个类。感谢在介绍gui