草庐IT

toothpick-di

全部标签

php - Laravel DI : call controller method without passing injected variable, 这可能吗?

classSomeControllerextendsController{publicfunctiondoALot(Request$request){$this->doOne($someOtherVariable);//Typeerror:Argument1passedtoApp\Http\Controllers\SomeController::doOne()mustbeaninstanceofIlluminate\Http\Request$this->doOne($request,$someOtherVariable);//Badpractice?...}publicfunction

php - 在 Symfony 3.3 中使用 DI 在抽象类中 Autowiring ,这可能吗?

我正在将Symfony3.2项目移动到Symfony3.3,我想使用DInewfeatures.我有readthedocs但到目前为止,我可以让它发挥作用。请参阅以下类定义:useHttp\Adapter\Guzzle6\Client;useHttp\Message\MessageFactory;abstractclassAParent{protected$message;protected$client;protected$api_count_url;publicfunction__construct(MessageFactory$message,Client$client,stri

php - 包含已注入(inject)依赖项的对象的对象的 DI 容器

使用pimple作为我的DI容器,我一直在勇敢地重构小类以依赖DI注入(inject),消除我认为可以轻松删除的硬编码依赖项。我完成这项任务的方法非常简单,但我不知道它是否合适,因为除了上个月在这里学到的知识外,我在DI和单元测试方面的经验很少。我创建了一个类ContainerFactory,它是pimple的子类,并且在该子类中创建了简单地返回特定对象容器的方法。构造函数根据类型调用适当的创建者方法:function__construct($type=null,$mode=null){if(isset($type)){switch($type){case'DataFactory':$

java - 通过 DI 在 Spring Framework 中正确使用 LOG4J

我正在尝试使用Log4j作为Spring框架的一部分,据我所知,通过使用适当的bean系统应该映射一个在代码中可访问的单例实例同时将日志记录深度自动映射到类类似于Log4J的正常使用如Loggerlog=Logger.getLogger(getClass());我一直在使用以下Springbean定义conf\log4j.xml但是我无法将这个bean映射到给定类中的特定成员我也无法通过@autowired来使用它请告诉我是否有任何更好的方法来集成Log4j和Spring最好的问候标记 最佳答案 对您的问题的简短回答是log4j不是

java - Spring DI - 不要初始化所有依赖的 bean

我有一个ServiceA,它依赖于ServiceB。serviceB来自带有lazy-init=true的springbean文件,即,我只希望在我请求该bean时初始化serviceB。但是,我确实在整个应用程序中使用了ServiceA,并且当我们进行基于setter的注入(inject)时,ServiceB被初始化。我希望ServiceA不初始化ServiceB,直到调用ServiceA中需要ServiceB的任何方法。一种方法是使用方面但我一直在寻找最简单的解决方案,特别是在serviceB的SpringXML文件或serviceB中的某些注释或任何代理标志中。

java - Guice/DI 和混合注入(inject)和运行时传入的参数

我有这样一种情况,当我初始化我的一些类时,我需要注入(inject)一些字段(例如对工厂的引用等),而其他一些是动态的并在运行时创建(例如用户名等)。如何使用GUICE框架构建此类对象?简单地将我需要注入(inject)的字段注释为@Inject不起作用,因为在使用构造函数创建对象时似乎没有设置它们。例如:classC{@InjectprivateFactoryClasstoBeInjected;privateConfigurationFieldpassedIn;publicC(ConfigurationFieldpassedIn){this.passedIn=passedIn;}}如

精准掌握.NET依赖注入:DI自动注册服务轻松搞定

概述:.NET依赖注入(DI)通过反射自动注册服务,示例展示了注册指定类、带特性类、项目下所有接口实现的类。简化配置,提高可维护性。在.NET中,进行依赖注入(DI)的自动注册,可以通过反射机制和程序集扫描来实现。以下是详细的步骤以及相应的C#源代码示例,包括注册指定类、注册带有自定义特性的类、以及注册项目下所有带有接口实现的类(项目下的所有接口):步骤1:创建接口和实现类//接口1publicinterfaceIService1{voidPerformService1();}//接口2publicinterfaceIService2{voidPerformService2();}//实现类1

java - 在使用 DI 框架的项目中,您永远不应该使用 'new' 运算符吗?

我正在努力研究依赖注入(inject)。我感到困惑的一件事是,您的对象实例化是否所有都需要由DI框架(Spring、Guice等)控制。或者,如果不是,您如何确定哪些对象由框架实例化,哪些对象由new运算符实例化? 最佳答案 不,还有新的地方。并非所有对象都需要受DI工厂的控制。您可以很容易地找出需要在DI工厂控制下的类,因为它们通常涉及接口(interface)和实现。实现中的任何本地对象都有权调用new。为满足特定用例而实例化的模型对象应通过调用new并传递该特定实例的参数值来实例化。

c# - DI 设计模式的值对象是否有效依赖?

对于我见过的所有DI示例,我总是将依赖项视为其他类,如服务。但事实上,一个对象可能在很大程度上和/或至关重要地依赖于配置值,例如字符串和资源包装器(文件/路径/URI/URL,而不是整个大值字符串/文档或阅读器)。请注意,这是关于Java或C#语法中的DI设计模式,而不是任何特定的DI框架如何处理它。例如,假设我有一个返回字符串的类(相对路径,基于一些晦涩的实现逻辑)。它(而不是它的各种实现者)对“projectLocation”具有配置/初始化依赖性,因为用户可以在他们的机器上拥有各种项目,并且此类将在调用时根据给定项目执行一些逻辑。publicabstractclassPathRe

java - 什么是 DI 容器?

我正在看这个关于依赖注入(inject)的类(class)视频,讲师谈到了di-container但没有详细解释,现在我看了一些文章,我想确认一下,现在我明白了正确的。下面是简单的程序,我的问题是,下面的程序类是不是最简单的双容器?如果不是,简单的di-container会是什么样子interfaceImplementable{voiddoSmth();}classAimplementsImplementable{@OverridepublicvoiddoSmth(){}}classB{privateImplementablei;publicB(Implementableimpleme