关于依赖注入:春天自动装配的优势是什么

What is the advantage of autowiring in spring

自动布线的优点到底是什么?

弹簧中的自动布线示例如下

1
2
3
4
5
6
7
8
9
10
11
12
13
public class TestClass {
    testMethod() {
        // .....
    };
}

public class MainClass {
    public static void main(String[] args) {
        ApplicationContext ctx = new ClasspathXmlApplicationContext("test.xml");
        TestMethod obj = (TestClass) ctx.getBean("test");
        obj.testMethod();
    }
}

测试XML

1
<bean id="test" class="TestClass">

在正常操作中,也可以使用以下方法:

1
2
3
4
5
6
public class MainClass {
    public static void main(String[] args) {
        TestClass obj = new TestClass();
        obj.testMethod();
    }
}

Spring的优点是什么,我是说我听说过控制反转和依赖注入这两个术语。在这两个示例中,testclass的引用都是通过newoerator通过SpringXML再次使用的。所以,有人能用简单的术语解释什么是优势吗?


Spring负责创建对象。例如,在Spring Boot中,您正在创建一个服务:

1
2
@Service
public class CreditService { ....

通过这一点,您要对SpringBoot说,他需要从CreditService类型创建一个对象,并且每当您想使用它时,您不需要创建它,您只需说:

1
2
@Autowired
private CreditService creditService;

有了它,您将得到一个引用:creditservice,它将指向Spring为您创建的对象并调用方法(services)。所以基本上,Spring是负责对象的创建,而您只是调用它,而不是担心在任何地方创建新的对象。