有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java我需要一个框架来使用依赖注入吗?

在过去的两天里,我一直在阅读和练习依赖注入,但一切都没有结果,突然我发现依赖注入需要一些框架才能工作。 这是真的吗? 让我的项目依赖于某个框架不是一种糟糕的做法吗? 如果不使用框架,它能做到吗

编辑:我是编程新手,所以我不明白建立一个类和使用它的方法(我不需要一个框架)和使用依赖注入有什么区别,还有什么更好的地方

编辑:这里有一个例子,我没有使用一个框架,事情不起作用TestNG @Factory annotation + not enough knowledge on Dependency Injection


共 (2) 个答案

  1. # 2 楼答案

    您不必使用框架,但它将帮助您编写更清晰的代码。例如,如果希望在不使用框架的情况下将模拟注入类,则需要通过添加getter/setter、将其传递给构造函数或使用公共变量来实现

    public class AClassToTest{
       private A aDependentClass; 
    
       public void aMethodToTest(){
          int i = aDependentClass.someDependentMethod();
          ..
          ..
       }
    }
    

    在上面的代码中,aMethodToTest()依赖于aDependentClass.someDependentMethod()返回的内容。这意味着您应该创建类A的模拟,并模拟someDependentMethod返回的内容。这在不使用框架的情况下仍然是可能的,例如,通过添加getter和setter,您可以在testclass中设置对象a:

    @Test
    public void testAMethodToTest(){
       //here you must set the object A in your AClassToTest object
       //Create a mock of A with desired values
       //and set it using a setter
    }
    

    例如,如果您使用spring进行依赖项注入,它将允许您使用它的@Autowire符号在它的IOC容器中设置模拟对象。然后,您不需要为模拟对象设置setter/getter,这将为您提供更清晰的代码