目录
概念
Spring是一个轻量级、企业级的开源框架。
作用
1.简化开发,降低企业级开发的复杂性
2.框架整合,高效整合其他技术,提高企业级应用开发与运行效率
两大核心:IOC+AOP
IOC(控制反转):Spring提供了一个容器,这个容器负责对象的创建,初始化等一系列工作,被创建或被管理的对象在IOC容器中统称为Bean。这样我们在使用对象时,由主动new产生对象转换为由容器提供对象。可以用来降低代码之间的耦合度。
DI(依赖注入):在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入。
使用对象时不仅可以直接从IOC容器中获取,并且获取到的bean已经绑定了所有的依赖关系。
依赖注入
1.引入Spring依赖坐标
2.依赖注入的方式
1)setter方式注入
简单类型
在bean中定义引用类型属性并提供可访问的set方法
private String name;
public void setName(String name) {
this.name = name;
}
<!--
bean标签:表示配置bean
id属性:类的唯一标识
class属性:类的所在位置(包名.类名)
-->
<bean id="boy" class="com.ucloud.spring01.demo03.Boy">
<property name="name" value="张三"></property>
</bean>
<!--:property标签:表示配置当前bean的属性
name属性:表示配置哪一个具体的属性
ref属性:表示参照哪一个bean-->
引用类型
在bean中定义引用类型属性并提供可访问的set方法
private Girl girl;
public void setGirl(Girl girl) {
this.girl = girl;
}
<bean id="boy" class="com.ucloud.spring01.demo03.Boy">
<property name="girl" ref="girl"></property>
</bean>
<bean id="girl" class="com.ucloud.spring01.demo03.Girl">
<property name="say" value="I Hata YOU"></property>
</bean>
2)构造方法注入
index属性设置按形参位置注入
在bean中定义引用类型属性并提供可访问的构造方法
private String name;
private String sex;
Address address;
public Person(Address address, String name, String sex) {
this.address = address;
this.name = name;
this.sex = sex;
}
<bean id="person1" class="com.ucloud.spring01.demo05.Person">
<constructor-arg index="0" ref="addr"></constructor-arg>
<constructor-arg index="1" value="张三"></constructor-arg>
<constructor-arg index="2" value="男"></constructor-arg>
</bean>
使用构造器注入完成强制依赖的注入,使用setter注入完成可选依赖的注入。
在依赖注入时,构造方法注入和设值(Setter)注入有什么区别?
调用方法不同:setXXX, 构造方法
标签不同 :setter ,构造方法