标签: dependency-injection

如何解释5岁的依赖注射?

什么是解释依赖注入的好方法?

我在Google上找到了几个教程,但没有一个能让读者认为只是Java初学者的教程.你会如何向新手解释这个?

design-patterns dependency-injection inversion-of-control

208
推荐指数
5
解决办法
9万
查看次数

我是否需要NodeJS中的依赖注入,或者如何处理...?

我目前正在使用nodejs创建一些实验项目.我已经用Spring编写了很多Java EE Web应用程序,并且很欣赏那里的依赖注入的简易性.

现在我很好奇:如何使用节点进行依赖注入?或者:我甚至需要它吗?是否有替换概念,因为编程风格不同?

我说的是简单的事情,比如分享数据库连接对象,到目前为止,但我还没有找到满足我的解决方案.

dependency-injection inversion-of-control node.js

208
推荐指数
7
解决办法
8万
查看次数

什么是温莎城堡,我为什么要关心?

我是一名长期的Windows开发人员,在win32和早期的COM上已经开始了.我从2001年开始使用.Net,因此我对C#和CLR非常流利.在我开始参与Stack Overflow之前,我从未听说过Castle Windsor.我已经读过温莎城堡"入门"指南,但它没有点击.

教这个老狗的新技巧,并告诉我为什么我应该将Castle Windsor整合到我的企业应用程序中.

c# dependency-injection castle-windsor inversion-of-control

187
推荐指数
1
解决办法
7万
查看次数

传递参数JavaFX FXML

如何将参数传递给javafx中的辅助窗口?有没有办法与相应的控制器通信?

例如:用户从a中选择一个客户,TableView并打开一个新窗口,显示客户的信息.

Stage newStage = new Stage();
try 
{
    AnchorPane page = (AnchorPane) FXMLLoader.load(HectorGestion.class.getResource(fxmlResource));
    Scene scene = new Scene(page);
    newStage.setScene(scene);
    newStage.setTitle(windowTitle);
    newStage.setResizable(isResizable);
    if(showRightAway) 
    {
        newStage.show();
    }
}
Run Code Online (Sandbox Code Playgroud)

newStage将是新窗口.问题是,我找不到告诉控制器在哪里查找客户信息的方法(通过传递id作为参数).

有任何想法吗?

parameters dependency-injection javafx parameter-passing fxml

180
推荐指数
4
解决办法
16万
查看次数

有人可以解释Microsoft Unity吗?

我一直在阅读有关Unity(依赖注入,控制反转)的MSDN文章,但我认为我需要用简单的术语(或简单的例子)来解释它.我熟悉MVPC模式(我们在这里使用它),但我还不能真正掌握这个Unity的东西,我认为这是我们应用程序设计的下一步.

c# dependency-injection inversion-of-control unity-container

153
推荐指数
6
解决办法
10万
查看次数

ASP.NET Core Dependency Injection错误:尝试激活时无法解析类型服务

我创建了一个.NET Core MVC应用程序,并使用依赖注入和存储库模式将一个存储库注入我的控制器.但是,我收到一个错误:

InvalidOperationException:尝试激活"WebApplication1.Controllers.BlogController"时,无法解析类型"WebApplication1.Data.BloggerRepository"的服务.

型号(Blog.cs)

namespace WebApplication1.Models
{
    public class Blog
    {
        public int BlogId { get; set; }
        public string Url { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

DbContext(BloggingContext.cs)

using Microsoft.EntityFrameworkCore;
using WebApplication1.Models;

namespace WebApplication1.Data
{
    public class BloggingContext : DbContext
    {
        public BloggingContext(DbContextOptions<BloggingContext> options)
            : base(options)
        { }
        public DbSet<Blog> Blogs { get; set; }
    }
}
Run Code Online (Sandbox Code Playgroud)

存储库(IBloggerRepository.cs和BloggerRepository.cs)

using System;
using System.Collections.Generic;
using WebApplication1.Models;

namespace WebApplication1.Data
{
    internal interface IBloggerRepository : IDisposable
    {
        IEnumerable<Blog> GetBlogs();

        void InsertBlog(Blog blog);

        void …
Run Code Online (Sandbox Code Playgroud)

c# dependency-injection asp.net-core-mvc asp.net-core

146
推荐指数
13
解决办法
18万
查看次数

通过构造函数或属性设置器进行依赖注入?

我正在重构一个类并为它添加一个新的依赖项.该类目前正在构造函数中使用其现有依赖项.因此,为了保持一致性,我将参数添加到构造函数中.
当然,对于单元测试,有一些子类加上甚至更多,所以现在我正在玩改变所有构造函数的游戏来匹配,并且它需要很长时间.
这让我觉得使用带有setter的属性是获得依赖关系的更好方法.我认为注入的依赖项不应该是构造类实例的接口的一部分.您添加了一个依赖项,现在所有用户(子类和任何直接实例化您的用户)突然知道它.这感觉就像打破了封装.

这似乎不是现有代码的模式,所以我希望找出一般的共识是什么,构造函数与属性的优缺点.使用属性设置器更好吗?

dependency-injection inversion-of-control

145
推荐指数
9
解决办法
3万
查看次数

是否有用于初始化通过DI容器创建的对象的模式

我试图让Unity管理我的对象的创建,我希望有一些在运行时才知道的初始化参数:

目前,我能想到的方法是在接口上使用Init方法.

interface IMyIntf {
  void Initialize(string runTimeParam);
  string RunTimeParam { get; }
}
Run Code Online (Sandbox Code Playgroud)

然后使用它(在Unity中)我会这样做:

var IMyIntf = unityContainer.Resolve<IMyIntf>();
IMyIntf.Initialize("somevalue");
Run Code Online (Sandbox Code Playgroud)

在这种情况下,runTimeParamparam是在运行时根据用户输入确定的.这里的简单案例只返回值,runTimeParam但实际上参数将类似于文件名,初始化方法将对文件执行某些操作.

这会产生许多问题,即该Initialize方法在界面上可用并且可以多次调用.在实现中设置一个标志并在重复调用时抛出异常Initialize似乎很笨重.

在解析我的界面时,我不想知道有关实现的任何信息IMyIntf.但是,我想要的是知道这个接口需要一定的一次初始化参数.有没有办法以某种方式注释(属性?)具有此信息的接口,并在创建对象时将它们传递给框架?

编辑:更多地描述了界面.

interface-design dependency-injection ioc-container inversion-of-control unity-container

145
推荐指数
3
解决办法
7万
查看次数

在Angular.js中可以向其他人注入什么"东西"?

我很难理解Angular中的依赖注入.所以我的问题是,任何人都可以解释哪些"类型",如控制器,工厂,提供商等,我们可以注入其他类型,包括相同"类型"的其他实例?

我实际上正在寻找的是这个表充满了y/n.对于具有相同行/列的单元格,这意味着将一个"类型"的值注入另一个具有相同"类型"的另一个"类型"

+----------------+----------+------------+-----------+---------+--------+----------+---------+-------+
| Can we inject? | Constant | Controller | Directive | Factory | Filter | Provider | Service | Value |
+----------------+----------+------------+-----------+---------+--------+----------+---------+-------+
| Constant       |          |            |           |         |        |          |         |       |
| Controller     |          |            |           |         |        |          |         |       |
| Directive      |          |            |           |         |        |          |         |       |
| Factory        |          |            |           |         |        |          |         |       |
| Filter         |          |            |           |         |        |          |         |       | …
Run Code Online (Sandbox Code Playgroud)

dependency-injection angularjs

140
推荐指数
3
解决办法
4万
查看次数

Spring:为什么我们自动连接接口而不是实现的类?

interface IA
{
  public void someFunction();
}

@Resource(name="b")
class B implements IA
{
  public void someFunction()
  {
    //busy code block
  }
  public void someBfunc()
  {
     //doing b things
  }
}

@Resource(name="c")
class C implements IA
{
  public void someFunction()
  {
    //busy code block
  }
  public void someCfunc()
  {
     //doing C things
  }
}

class MyRunner
{

  @Autowire
  @Qualifier("b") 
  IA worker;

  worker.someFunction();
}
Run Code Online (Sandbox Code Playgroud)

谁可以给我解释一下这个.

  • spring如何知道要使用哪种多态类型.
  • 我需要@Qualifier还是@Resource
  • 为什么我们自动连接接口而不是实现的类?

java spring dependency-injection

136
推荐指数
1
解决办法
16万
查看次数