
本教程操作环境:windows7系统、java10版,DELL G3电脑。
1、概念
spring ioc指的是控制反转,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。交由Spring容器统一进行管理,从而实现松耦合。在Java开发中,Ioc意味着将你设计好的对象交给容器控制,而不是传统的在对象内部直接控制。
2、Setter方法注入
Setter方法注入是容器通过调用无参构造器或无参static工厂 方法实例化bean之后,调用该bean的setter方法,即实现了基于setter的依赖注入。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | package com.jpeony.spring.setter;
import com.jpeony.spring.common.HelloServiceImpl;public class HelloWord {
private HelloService helloService;
public void setHelloService(HelloService helloService) {
this .helloService = helloService;
}
@Override
public void selfIntroduction() {
helloService.sayHello( "大家好!" );
}
}
|
2、构造方法注入
构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数代表一个对其他类的依赖。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | 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命名空间注入
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | 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的使用。