草庐IT

java - Guice - 使用静态辅助方法将依赖项注入(inject)类

我对Guice还是个新手,之前没有使用过任何DI框架。在阅读了官方wiki和许多其他文档后,我仍然无法完全理解它。在我的特殊情况下,我想编写一个使用其他(待注入(inject))类的ELtaglib函数。由于所有taglib函数都必须声明为静态的,所以我不能仅通过构造函数或setter@Inject我的依赖项。我想到了使用http://code.google.com/p/google-guice/wiki/Injections#Static_Injections中描述的requestStaticInjection()方法但我无法让它工作,也找不到任何好的教程。在此先感谢您的帮助,阿曼

java - 使用 Guice Servlet 的简单示例

我不知道如何继续一个简单的guice示例。阅读文档后,我完成了以下操作:设置guiceFilter创建了一个注入(inject)器并在GuiceServletContextListener中实例化了一个新的ServletModule,并将监听器添加到web.xml在配置servlet中绑定(bind)serve("*.jsp").with(IndexController.class);完成后我该如何使用依赖注入(inject)?假设我有一个index.jsp、IndexController.class(servlet)和两个名为Person和Order的类,Person取决于Order

java - 使用 Guice : Something that isn't covered by any tutorial 进行依赖注入(inject)

我只是摆弄了一下GoogleGuice用于依赖注入(inject)并开始将其集成到我现有的应用程序中。到目前为止,一切都很好。我有许多类,除了它们的依赖项之外,还需要字符串、数据源等。我知道有NamedBindings,但我真的不想为每个必须传递给每个类的构造函数的简单字符串创建注释。然后,有一个叫做AssistedInject的东西,为我创建工厂实现。哇,但我仍然必须定义工厂的接口(interface)。这对于具有依赖关系的类来说没问题,但是这个示例类呢:publicclassFooBarClass{publicFooBarClass(Stringname,Stringanother

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 - Guice @Transactional 不启动事务

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

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 - Guice:我是否必须使用@Inject 来注释对象图的每个类?

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

java - 如何将 Jersey ExceptionMapper 与 Google Guice 一起使用?

我正在使用JerseyGuice并且需要配置自定义ExceptionMapper我的模块是这样的:publicfinalclassMyJerseyModuleextendsJerseyServletModule{@OverrideprotectedvoidconfigureServlets(){...filter("/*").through(GuiceContainer.class);...}}这是我的ExceptionMapper:importjavax.ws.rs.core.Response;importjavax.ws.rs.core.Response.Status;import