- Spring
- IOC
- 配置Bean的方式
- 依赖注入(Dependency Injection,DI)
- Bean的作用域
- Spring MVC
- SpringBoot
控制反转IoC(Inversion of Control),是一种设计思想,DI(依赖注入(Dependency Injection,)是实现IoC的一种方法。没有IOC的程序中 , 我们使用面向对象编程 , 对象的创建与对象间的依赖关系完全硬编码在程序中,对象的创建由程序自己控制,控制反转后将对象的创建转移给第三方,个人认为所谓控制反转就是:获得依赖对象的方式反转了。
@Test public void test(){
//解析beans.xml文件 , 生成管理相应的Bean对象
ApplicationContext context = new ClassPathXmlApplicationContext("beans.xml");
//getBean : 参数即为spring配置文件中bean的id .
Hello hello = (Hello) context.getBean("hello");
hello.show(); }
配置Bean的方式
注:在配置文件加载的时候。其中管理的对象都已经初始化了!
- XML配置文件:Bean的定义信息和实现分离
- 注解:定义信息和实现合在一起,达到了零配置的目的
依赖 : 指Bean对象的创建依赖于容器
注入 : 指Bean对象所依赖的资源 ,由容器来设置和装配 .
| 构造函数注入 | setter 注入 |
|---|---|
| 没有部分注入 | 有部分注入 |
| 不会覆盖 setter 属性 | 会覆盖 setter 属性 |
| 任意修改都会创建一个新实例 | 任意修改不会创建一个新实例 |
| 适用于设置很多属性 | 适用于设置少量属性 |
public class User {
private String name;
public User() {
System.out.println("user无参构造方法");
}
public USer(String name) {
this.ame = name;
System.out.println("user有参构造方法");
}
public void setName(String name) {
this.name = name;
}
public void show(){
System.out.println("name="+ name );
}
}
- 构造器注入
//无参构造 属性设置由于setNAme方法完成
//有参构造
- Set注入
要求被注入的属性 , 必须有set方法 , set方法的方法名由set + 属性首字母大写
常量注入(依靠setName()方法)Bean的作用域Bean注入 ref后面跟的是一个引用 ...... 数组注入 List注入 Map注入 set注入 p命名空间注入(set注入,可以直接注入属性的值) //导入约束 : xmlns:p="http://www.springframework.org/schema/p" // c命名空间注入(通过构造器注入,需要写入有参和无参构造方法) //导入约束 : xmlns:c="http://www.springframework.org/schema/c" //
Spring MVC SpringBoot



