草庐IT

java - Guice + 类路径扫描

我目前正在研究Guice,它似乎适合通过模块以明确的编程方式构建上下文。现在我已经相当习惯使用注解将某些内容放入上下文并使用类路径扫描来构建上下文。现在我可以很容易地将这个“功能”添加到guice中,但我不想重新发明轮子,所以如果有人知道是否有扩展已经做到了这一点-请告诉我。但是,我的问题是,这样做是否会破坏Guice的预期用途和设计...我是否错过了企业应用程序中如何/为什么要使用Guice的要点? 最佳答案 Guice有一些非常聪明的东西JITbinding如果不需要实际的绑定(bind)(例如接口(interface)到实现等

java - 使用继承和泛型组织 Jersey 资源的正确方法是什么?

我正在使用Jersey开发一个应用程序,我有很多资源。尽管这些资源的主要功能各不相同,但它们共享许多通用方法(如列表、读取、更新等)。该应用程序在GoogleAppEngine上运行,并使用Guice进行依赖注入(inject)。我的第一个方法是拥有一个包含所有通用逻辑的通用AbstactResource,并且它分别由所有其他资源扩展,这些资源添加了它们所需的自定义方法。publicclassAbstractResource{@GETpublicListPagelist(@QueryParam("limit")Integerlimit,@QueryParam("start")Integ

java - 在 Guice 的模块配置中关联 FXML 和 Controller

在我的Guice模块中,我想关联FXML文件及其Controller,目前它看起来像这样:publicclassGuiceModuleextendsAbstractModule{@Overrideprotectedvoidconfigure(){//associatecontrollersandfxmlfilesbind(MainController.class).toInstance((MainController)loadController("/main.fxml"));bind(SubController.class).toInstance((SubController)loa

java - 将基于 Guice 的项目迁移到 Dagger

我有一个使用vanillaGuice的基于Guice的项目;没有Assisted-Inject,没有AOP,没有扩展Guice的额外插件,等等。为了在Android上更轻松地运行它,Dagger似乎是一个更好的解决方案。每个类都有一个依赖项和一个带有@Inject注释的构造函数。没有使用字段或方法注入(inject)。这些模块非常简单(使Guice变得矫枉过正)并且主要包含如下绑定(bind):classSomethingModuleextendsAbstractModule{protectedvoidconfigure(){Bind(Handler.class).annotatedW

java - 在 AWS Lambda 中集成 Google Guice

我正在尝试将GoogleGuice集成到AWSLambda中,但由于某些原因,注入(inject)效果不佳。每当我尝试打电话时它都会给我null处理程序代码:publicclassFirstLamdbaimplementsRequestHandler{privateUserServiceuserService;@InjectpublicvoidseUserService(UserServiceuserService){this.userService=userService;}publicObjecthandleRequest(Requestrequest,Contextcontext

java - Sitebricks Controller 中请求参数的方法拦截或验证

我正在使用带有Guice的Sitebricks来实现REST服务,我有一组这样的方法:@Get@At("/:version/har/mostRecentEntry/assertResponseTimeWithin")publicReplydoSomething(@Named("version")intversion,Requestrequest){//Validationlogicforrequestparameters...//Extractingparameters(convertingurlparamstodomainareaobjects)//Actualbusinesslog

java - 使用 Guice 的构造函数注入(inject)

我有一些使用工厂的示例代码。我想通过删除工厂并改用Guice来清理代码。我试图这样做,但遇到了一个小障碍。我是Guice的新手,所以我希望有人能帮助我。现有客户端代码(使用工厂):publicclassMailClient{publicstaticvoidmain(String[]args){MailConfigconfig=MailConfigFactory.get();config.setHost("smtp.gmail.com");Mailmail=MailFactory.get(config);mail.send();}}我尝试使用Guice进行重构://Replacesexi

java - 使用 Guice,如何注入(inject)父类(super class)的构造函数参数?

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:GuicewithparentsclassBook{stringtitle;}classChildrensBookextendsBook{}classScienceBookextendsBook{}我想在子类中注入(inject)书名,例如,childrensBook应该被分配标题“AliceinWonderland”,ScienceBook应该被分配“OntheOriginof物种”。我如何使用Guice完成此操作?(注意我不想覆盖子类中的title字段)

java - 实例化每个范围/组的单例 - 陷入 Guice 依赖 hell

这个问题是Usingguiceforaframeworkwithinjectedclasses,properwaytoinitialize?的延续,我已经尝试实现,也尝试了其他方法来解决这个问题,但到目前为止没有任何效果。主要问题是这个。我有一个在API的不同部分公开的InterfaceA和InterfaceB。有两个类实现了这两个接口(interface),TestClass和RealClass,因此根据我是在测试还是在做其他事情,我可以执行以下操作:bind(InterfaceA.class).to(TestClass.class);bind(InterfaceB.class).t

Java构造函数模式

我经常使用这个模式:classBlahinta;doubleb;Stringc;Dated;publicBlah(inta,doubleb,Stringc,Dated){super();//possiblythis.a=a;this.b=b;this.c=c;this.d=d;}对于如此简单的事情,这确实是大量的样板文件。我在想一个通用的对象工厂来通过内省(introspection)来做到这一点,但这感觉非常邪恶(特殊情况、继承和速度问题)。可以使用Guice并完全跳过构造函数,但是手动创建对象会很丑陋。这是我必须在Java中忍受的东西,还是有办法避免这种样板文件?