Spring学习
1. Spring Framework
- 这个框架是所有Spring产品的核心和基础
- 基于IOC和AOP两大核心组件
- IOC控制反转是Spring的基础,以前由程序员自己创建对象,现在交给Spring创建对象
- DI依赖注入,spring配置一个bean时,如果需要给bean提供一些初始化参数,则需要通过依赖注入的方式,所谓的依赖注入就是通过spring将bean所需要的一些参数传递到bean实例对象的过程
- AOP面向切面编程
1. IOC容器创建对象的几种方式
- 无参构造器
- 有参构造器
- 工厂类创建对象:静态方法创建对象和非静态方法创建对象
- FactoryBean工厂bean,其返回的是该工作Bean的getObject方法所返回的对象。
2. 依赖注入的三种方式
1、使用属性的Setter方法注入,这是最常用的方式
【要求】
- 要求Bean提供一个无参构造器
- 为需要注入的属性提供对应的Setter方法,spring会将name值的单词首字母转换成大写,再在前面拼接上“set”构成一个方法名,通过反射的方式调用Setter方法实现注入
2、使用构造器注入
【要求】
- 在类中,不必为属性设置setter方法,但是需要生成带参的构造函数
- 在配置文件中配置该bean,并配置构造器,使用<constructor-arg>节点,该节点有四个属性:
- index索引,从0开始;
- type是指该属性所对应的类型;
- ref是指引用的依赖对象;
- value当注入的属性不是对象,而是基本数据类型时,就用value。
【autowire属性自动注入】
3、使用注解方式
【注入属性的注解】—— 配合PropertyPlaceholderConfigurer(引用外部文件:data.properties)使用
- @Autowired,代替ref,默认按类型装配;
- @Resource,默认按名称装配;
- @Value,装配基本的数据类型。
3. Spring Bean的生命周期
------ Spring框架中,一旦把一个Bean纳入Spring IOC容器中,这个Bean的生命周期就会交由容器进行管理,一般担当管理角色的是BeanFactory或者ApplicationContext。
下面以BeanFactory为例,说明一个Bean的生命周期:
- Bean的建立,由BeanFactory读取Bean定义文件,并生成各个实例;
- 执行Bean的属性依赖注入;
4. Spring Bean的作用域
n. FactoryBean和BeanFactory的区别