网课网站新闻发布会的工作环节包括
Setter注入
引用类型
在bean中定义引用类型属性并提供可访问的set方法
配置中使用property标签ref属性注入引用类型对象
简单类型
在bean中定义引用类型属性并提供可访问的set方法
配置中使用property标签value属性注入简单类型数据
构造器注入
引用类型(了解)
在bean中定义引用类型属性并提供可访问的构造方法
配置中使用constructor-arg标签ref属性注入引用类型对象
参数适配(了解)
配置中使用constructor-arg标签type属性设置按形参类型注入
配置中使用constructor-arg标签index属性设置按形参位置注入
依赖注入方式选择
1.强制依赖使用构造器进行,使用setter注入有概率不进行注入导致null对象出现
(强制依赖:这个ben运行必须需要的东西用构造器注入,因为构造器一旦指定了,你这个参数必须给,你不会忘,忘了的话对象无法造,配置文件也报错)
2可选依赖使用setter注入进行,灵活性强
(可注可不注的东西使用setter注入)
3.Spring框架倡导使用构造器,第三方框架内部大多数采用构造器注入的形式进行数据初始化,相对严谨
4.如果有必要可以两者同时使用,使用构造器注入完成强制依赖的注入,使用setter注入完成可选依赖的注入
5.实际开发过程中还要根据实际情况分析,如果受控对象没有提供setter方法就必须使用构造器注入
6.自己开发的模块推荐使用setter注入
什么是自动装配
IoC容器根据bean所以来的资源在容器中自动查找并注入到bean中的过程称为自动装配
自动装配的方式
按类型(常用)
按名称
按构造方法
不启用自动装配
依赖自动装配
配置中使用bean标签autowire属性设置自动装配的类型
特征
1.自动装配用于引用类型依赖注入,不能对简单类型进行操作
2.使用按类型装配时(byType)必须保障容器中相同类型的bean唯一,推荐使用
3.使用按名称装配时(byName)必须保障容器中具有指定名称的bean,因变量名与配置耦合,不推荐使用
4.自动装配优先级低于setter注入与构造器注入,同时出现时自动装配配置失效
集合注入
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"><bean id="bookDao" class="com.itheima.dao.impl.BookDaoImpl"><!--数组注入--><property name="array"><array><value>100</value><value>200</value><value>300</value></array></property><!--list集合注入--><property name="list"><list><value>itcast</value><value>itheima</value><value>boxuegu</value><value>chuanzhihui</value></list></property><!--set集合注入--><property name="set"><set><value>itcast</value><value>itheima</value><value>boxuegu</value><value>boxuegu</value></set></property><!--map集合注入--><property name="map"><map><entry key="country" value="china"/><entry key="province" value="henan"/><entry key="city" value="kaifeng"/></map></property><!--Properties注入--><property name="properties"><props><prop key="country">china</prop><prop key="province">henan</prop><prop key="city">kaifeng</prop></props></property></bean>
</beans>
注意:array和list互相能够使用,大部分注入的都是简单类型
加载properties文件
开启context命名空间
使用context命名空间,加载指定properties文件
使用${}读取加载的属性值
不加载系统属性
加载多个properties文件
加载所有properties文件
加载properties文件标准格式
从类路径或jar包中搜索并加载properties文件