依赖注入(DI)
1 构造器注入
(前面已经说过了)
2 Set方式注入(重点)
- 依赖注入:Set注入!
- 依赖:bean对象的创建依赖于容器;
- 注入:bean对象的所有属性,由容器来注入;
环境搭建
- 复杂类型
public
- 真实测试对象
public
- beans.xml
<?xml version="1.0" encoding="UTF-8"?>
- 测试类
@Test
完善注入信息:
<?xml version="1.0" encoding="UTF-8"?>
3 拓展方式注入
我们可以使用p命名空间和c命名空间注入。
官方解释:
![v2-b582c96de696fce177aee43e6b785d5a_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=bf62f09d-0a2e-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-b582c96de696fce177aee43e6b785d5a_b.jpg)
使用:
<?xml version="1.0" encoding="UTF-8"?>
测试:
@Test
注意点:
需要导入命名空间约束!
xmlns:p="http://www.springframework.org/schema/p"
xmlns:c="http://www.springframework.org/schema/c"
4 Bean的作用域(Scope)
![v2-6c18a86cbf0056bc5f8941f8a5366289_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=bf62f09d-0a2e-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-6c18a86cbf0056bc5f8941f8a5366289_b.jpg)
- 单例模式(Spring默认机制)
<bean
- 原型模式:每次从容器中get的时候,都会产生一个新对象
![v2-e886e74ea976a98f3595beeae8c85100_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=bf62f09d-0a2e-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-e886e74ea976a98f3595beeae8c85100_b.jpg)
<bean
- 其余的request、session、application,这些个只能在web开发中使用!