Content
- IOC反转控制
- 基于XML的装配
– Setter注入
– 构造器注入
–XML注入实现细节
---------属性值使用value子节点注入
-------- value包含特殊字符
---------引用其他Bean(ref)
---------引用内部Bean
---------装配集合
--------- 配置Properties属性值
---------配置单例的集合bean,以便多个bean调用
--------- 通过P命名空间,配置bean属性
–SpringEL(Spring 表达式语言)【动态赋值】 - 基于注解方式的装配
IOC反转控制
传统的资源获取方式:组件向容器发送请求,容器返回资源
使用Spring获取资源方式:容器主动将资源注入到所在的组件当中。(DI 依赖注入)
基于XML的装配(XML区分大小写)
Setter注入
前提:
1.Bean必须有无参的构造器(无构造器时,系统会自动创建一个无参构造器)
2.必须提供一个setter方法
构造器注入
index 控制参数顺序
type控制具体参数类型(解决参数重载)
XML注入实现细节
属性值使用value子节点注入
value包含特殊字符
引用其他Bean(ref)
引用内部Bean
装配集合
配置Properties属性值
配置Map属性值
配置单例的集合bean,以便多个bean调用
将已创建的bean组合起来,方便调用
【注:添加命名空间util】
通过P命名空间,配置bean属性
SpringEL(Spring 表达式语言)
基于注解方式的装配
@Component
@Controller
@Service
@Repository
在类中设置上述注解,然后在xml中扫描包,就可以将含有注解的类加入到IOC容器中统一管理。
@Autowired:bean之间的通信
通过注解将组件加入到IOC容器后,可用@Autowired实现不同bean之间属性,方法的调用。
如下:在USerService中定义UserRepositoryImpl字段,在UserController中定义UserService字段,最后实例化UserController,即可调用UserRepositoryImpl和UserService的方法。
@Autowired(required=false)允许其属性不被设置,默认要求被@Autowired注解的属性都需要被设置。
@Qualifier("")指定某一个具体的类。当IOC容器中存在多个bean兼容@Autowired时。
例:
@Autowired
@Qualifier(“userRepository”)