一文带你了解 IOC 和 AOP
基于xml:Spring
IOC 是一种 控制反转的思想, 而DI 是对 IOC 的一种具体实现
- set 注入
- 构造注入
- 获取bean对象的方式:
- 根据ID获取bean
- 根据ID和类型获取bean
- 根据类型获取bean
- 当根据类型获取bean 时, 要求IOC 容器指定类型的bean 有且仅有一个
- 接口等于他的实现类对象(且,该接口只能有一个实现类)
类的属性值注入方式
原生的注入方式是给类的属性使用 set方法且注入属性值并使用get方法获取属性值。或者也可以使用类的有参构造函数 直接给类的属性设值
当前(前提是类的属性设置了set 和get ,有参构造和无参构造方法),此时就可以使用 spring 的xml 来配置类的属性值,也可以通过xml提供的构造器进行设置
- 特殊的属性值注入事项:
- 字面量赋值: int a=10
- 注入null 值 , 需要在该属性标签内使用 null 标签即可
- xml 实体: 使用转义符号: < a > 等同于 大于符号和小于符号<a>
- cdata 节: <![CDATA[ a < b ]]> 可以包含特殊值
- 为对象类型属性赋值
- 引入外部类的形式:在当前类使用ref 属性引入 对应外部 类的对象 beanid
- 内部bean 方式
- 级联赋值, 也就是 通过name.属性赋值
- 为数组和 list 集合 类型属性赋值
- 使用array 标签包裹多个value 即可
- 使用list 标签包裹多个value 即可
- 为map类型属性值赋值
- 使用map 标签 包裹即可, 使用entry 包括 key的键值对。 当遇到多个key-value 时, 可以使用多个entry标签进行分隔使用
基于xml:注入list、map 属性值
在 《Spring》章节中 描述了一般的list 、map 的 属性值赋值。 现在,将介绍 如何是哦那个 util:类型定义 list、map的 属性值
若需要util 即, 需要将他们的引入地址写入到配置文件中, 这里可以保留原有的xmlns 并复制修改为xmlns:util , 将地址 最后的bean 修改为util 即可
xmlns:util="http://www.springframework.org/schema/util"
然后在 schemal location 位置复制里面的内容在粘贴在该位置,对最后的bean替换成util 即可
http://www.springframework.org/schema/util/spring-util.xsd
若需要使用P 命名空间注入, 和上面的插件引入一样。
xmlns:p="http://www.springframework.org/schema/p"