Als «dependency-injection» getaggte Fragen

Ein Entwurfsmuster zur Reduzierung der Kopplung zwischen Komponenten durch dynamisches Einfügen von Abhängigkeiten in Softwarekomponenten, die für die Funktion erforderlich sind.

2
Warum nicht einen IoC-Container verwenden, um Abhängigkeiten für Entitäten / Geschäftsobjekte aufzulösen?
Ich verstehe das Konzept hinter DI, aber ich lerne gerade, was verschiedene IoC-Container können. Es scheint, dass die meisten Leute die Verwendung von IoC-Containern befürworten, um zustandslose Dienste zu verkabeln, aber was ist mit der Verwendung für zustandsbehaftete Objekte wie Entitäten? Ob es richtig oder falsch ist, ich stopfe meine …


5
Wie füge ich ein Repository in einen Dienst in Symfony ein?
Ich muss zwei Objekte injizieren ImageService. Eine davon ist eine Instanz Repository/ImageRepository, die ich so bekomme: $image_repository = $container->get('doctrine.odm.mongodb') ->getRepository('MycompanyMainBundle:Image'); Wie deklariere ich das in meiner services.yml? Hier ist der Service: namespace Mycompany\MainBundle\Service\Image; use Doctrine\ODM\MongoDB\DocumentRepository; class ImageManager { private $manipulator; private $repository; public function __construct(ImageManipulatorInterface $manipulator, DocumentRepository $repository) { $this->manipulator …

3
Injizieren von Abhängigkeiten in ASP.NET MVC 3-Aktionsfilter. Was ist falsch an diesem Ansatz?
Hier ist das Setup. Angenommen, ich habe einen Aktionsfilter, der eine Instanz eines Dienstes benötigt: public interface IMyService { void DoSomething(); } public class MyService : IMyService { public void DoSomething(){} } Ich habe dann einen ActionFilter, der eine Instanz dieses Dienstes benötigt: public class MyActionFilter : ActionFilterAttribute { private …

4
Verwendung von log4net mit Dependency Injection
Ich versuche herauszufinden, was das richtige Muster und die richtige Verwendung von log4net mit einem Abhängigkeitsinjektionsframework ist. Log4Net verwendet die ILog-Schnittstelle, erfordert jedoch einen Anruf LogManager.GetLogger(Reflection.MethodBase.GetCurrentMethod().DeclaringType) in jeder Klasse oder Methode, in der ich Informationen protokollieren muss. Dies scheint gegen die IoC-Prinzipien zu verstoßen und verbindet mich mit der Verwendung …

4
Unterschied zwischen "Inversion of Control", "Dependency Inversion" und "Decoupling"
Ich lese Theorie über Abhängigkeitsinversion und -entkopplung und kann den Unterschied zwischen den beiden nicht erkennen. Bei der Abhängigkeitsinversion geht es um die Entkopplung von Funktionskomponenten, damit Komponenten höherer Ebenen nicht von Komponenten niedrigerer Ebenen abhängen. Die Entkopplung spricht über dasselbe und wie man es erreicht. Aber dann haben wir …

6
Unterschied zwischen @Bean und @Autowired
Warum kann ich @Autowiredin diesem Fall nicht verwenden ? @SpringBootApplication public class Application { @Autowired BookingService bookingService; public static void main(String[] args) { bookingService.book("Alice", "Bob", "Carol"); } } kann aber verwenden @Bean @SpringBootApplication public class Application { @Bean BookingService bookingService() { return new BookingService(); } public static void main(String[] args) …

5
So testen Sie die asp.net-Kernanwendung mit der Konstruktorabhängigkeitsinjektion
Ich habe eine asp.net-Kernanwendung, die die Abhängigkeitsinjektion verwendet, die in der Startup.cs-Klasse der Anwendung definiert ist: public void ConfigureServices(IServiceCollection services) { services.AddDbContext<ApplicationDbContext>(options => options.UseSqlServer(Configuration["Data:FotballConnection:DefaultConnection"])); // Repositories services.AddScoped<IUserRepository, UserRepository>(); services.AddScoped<IUserRoleRepository, UserRoleRepository>(); services.AddScoped<IRoleRepository, RoleRepository>(); services.AddScoped<ILoggingRepository, LoggingRepository>(); // Services services.AddScoped<IMembershipService, MembershipService>(); services.AddScoped<IEncryptionService, EncryptionService>(); // new repos services.AddScoped<IMatchService, MatchService>(); services.AddScoped<IMatchRepository, MatchRepository>(); services.AddScoped<IMatchBetRepository, MatchBetRepository>(); services.AddScoped<ITeamRepository, …


5
Abhängigkeitsinjektion und benannte Logger
Ich bin daran interessiert, mehr darüber zu erfahren, wie Benutzer die Protokollierung mit Abhängigkeitsinjektionsplattformen injizieren. Obwohl sich die folgenden Links und meine Beispiele auf log4net und Unity beziehen, werde ich keines davon unbedingt verwenden. Für die Abhängigkeitsinjektion / IOC werde ich wahrscheinlich MEF verwenden, da dies der Standard ist, auf …


5
Verwenden von Spring 3 Autowire in einer eigenständigen Java-Anwendung
Hier ist mein Code: public class Main { public static void main(String[] args) { Main p = new Main(); p.start(args); } @Autowired private MyBean myBean; private void start(String[] args) { ApplicationContext context = new ClassPathXmlApplicationContext("META-INF/config.xml"); System.out.println("my beans method: " + myBean.getStr()); } } @Service public class MyBean { public String …



2
Was ist der Unterschied zwischen dem Bereitstellen und Injizieren von "Fenster" und "Fenster" in Winkel 8 und 9?
Ich habe zwei Angular-Projekte mit diesen Versionen: 9.0.0-next.6 8.1.0 In der Version 9 habe ich dies verwendet, um das windowObjekt bereitzustellen und zu injizieren : @NgModule({ providers: [ { provide: Window, useValue: window }, ] }) export class TestComponent implements OnInit { constructor(@Inject(Window) private window: Window) } Welches funktioniert gut. …

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.