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的引用都是通过
Spring负责创建对象。例如,在Spring Boot中,您正在创建一个服务:
1 2 | @Service public class CreditService { .... |
通过这一点,您要对SpringBoot说,他需要从CreditService类型创建一个对象,并且每当您想使用它时,您不需要创建它,您只需说:
1 2 | @Autowired private CreditService creditService; |
有了它,您将得到一个引用:creditservice,它将指向Spring为您创建的对象并调用方法(services)。所以基本上,Spring是负责对象的创建,而您只是调用它,而不是担心在任何地方创建新的对象。