大致上了解了一遍JavaWeb后,我又忍不住放纵了几天,太罪恶了(=´ω`=),今天开始继续学习。
这一次开始学习SSM框架。
一,IoC(控制反转)
1、概述
1)对象的创建控制权由程序转移到外部,这种思想称为控制反转(这样可以较小耦合)
2)Spring提供了一个容器,用来充当“外部”,称为IoC容器
3)IoC负责对象的创建、初始化等一系列工作,被创建或者被管理的对象在IoC容器中统称为Bean
4)基本格式
<bean id="名字" class="对象的类的路径"></bean>
id为bean的名字,class表示bean定义类型
然后要注意:bean的name属性可以配置别名,作用几乎与id一样,但是可以配置多个,用空格分开即可
bean默认为单例(对象是同一个),可以用scope="prototype"配置成多例
二,DI(依赖注入)
在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入
1、setter注入
1)引用类型
①首先类中要有可访问的set方法
②配置<property>标签使用ref属性注入引用类型对象
③基本格式
<property name="属性名" ref="有关系的那个bean名">
name属性表示配置哪一个具体属性
ref表示参照哪一个bean
2)简单类型(包括String类型)
①类中需要有可访问的set方法
②配置<property>标签使用value注入值
2、构造器注入
不再需要类中提供set方法
1)简单类型
①类中需要带参构造
②不再使用<property>标签而是:
<constructor-arg name="构造器参数名" value="参数值">
2)引用类型
①类中需要带参构造
②基本格式
<constructor-arg name="构造器参数名" ref="参数类对应的bean名">
3、依赖自动装配
IoC容器根据bean所依赖的资源在容器中自动查找并注入到bean中的过程称为自动装配
1)按类型
①对应的类中要有set方法
②配置bean时不再使用<property>和<constructor-arg>标签,直接使用<bean>的autowire="byType"
③注意要注入的数据的类型在配置文件中必须有且只有一个
2)按名称
①使用<bean>的autowire="byName"
②注意注入的数据类型必须在配置文件存在,并且变量名与其类型对应的bean的id必须相同
最后:自动装配用于引用类型依赖注入,不能对简单类型进行操作
自动装配优先级低于前面的setter注入和构造器注入
4、集合注入
基本格式
<property name="变量名">
<array>(集合类型)
<value></value>
......
</array>
</property>
当是map集合时不用<value>而是用<entry key="" value="">
当是property集合时,集合类型那里变成了<props>而给值那变成了<prop key="">value</prop>