我们使用java进行开发时,会在spring容器中看到IOC。很多人对这种方法不是很了解,那我们就简单来说明一下,其实它相当于一个工具,把做好的成果交由spring,而不是自己保留。接下来我们对spring ioc展开具体的概念介绍,然后就它的三种注入方式分别带来详解。
1、概念
spring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring容器统一进行管理,从而实现松耦合。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在对象内部直接控制。
2、Setter方法注入
Setter方法注入是容器通过调用无参构造器或无参static工厂 方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。
package com.jpeony.spring.setter; import com.jpeony.spring.common.HelloServiceImpl;public class HelloWord { private HelloService helloService; // setter方式注入Bean public void setHelloService(HelloService helloService) { this.helloService = helloService; } @Override public void selfIntroduction() { // 向大家打招呼 helloService.sayHello("大家好!"); } }
2、构造方法注入
构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。
package com.jpeony.spring.setter; import com.jpeony.spring.common.HelloServiceImpl; public class HelloWord { private HelloService helloService; // 构造方法注入 public HelloWord (HelloService helloService) { this.helloService = helloService; } }
3、P命名空间注入
package com.jpeony.spring.setter; import com.jpeony.spring.common.HelloServiceImpl; public class HelloWord { //名字 private String name; //年龄 private String age; //方法类 private HelloService helloService; public void setName (String name) { this.name = name; } public void setAge (String age) { this.age = age; } public void setHelloService(HelloService helloService) { this.helloService = helloService; } @Override public void selfIntroduction() { // 向大家打招呼 helloService.sayHello("我叫"+ name + ",今年" + age + "岁,大家好!"); } }
以上就是java中spring ioc的三种注入方式,大家在对这种容器有所了解后,可以分别尝试注入的方法,以便更好地理解spring ioc的使用。