一、简介
1. Spring中有两种Bean,一种是普通Bean,一种是工厂Bean(FactoryBean)。
2. 普通Bean定义类型和返回类型一致;工厂Bean定义类型和返回类型不一致
3. 工厂Bean:第一步:创建类,让这个类作为工厂Bean,实现接口FactoryBean;第二步:实现接口里面的方法,在实现的方法中定义返回的Bean类型
二、Bean的作用域
1. 在Spring里面,默认情况下是单实例对象
2. 如何设置单实例和多实例 ?
(1)在Spring配置 文件Bean标签里面有属性scope用于设置单实例还是多实例
(2)scope属性值
① 默认值 singleton 表示单实例对象
② prototype 表示多实例对象
(3)singleton 和 prototype 的其它区别
① 设置scope值是singleton单实例时,加载Spring配置文件的时候就会创建单实例对象,而prototype是在调用getBean方法是创建多实例对象
三、Bean的生命周期
1. 生命周期
(1)是指从对象创建到对象销毁的过程
2. Bean的生命周期
(1)通过构造器创建Bean实例
(2)为Bean的属性注入值和对其它Bean的引用
(3)调用Bean的初始化的方法
(4)获取Bean对象
(5)当容器关闭时,调用销毁Bean对象的方法
四. IOC基于注解操作Bean管理
1. 什么是注解?
(1)注解是代码的特殊标记,格式:@注解名称(属性名称=属性值,属性名称=属性值)
(2)注解可以作用在类、方法、属性上
(3)目的:简化xml配置
2. Spring针对Bean管理中创建对象提供的注解
@Component、@Service、@Controller、@Repository
3. 基于注解方式实现对象创建
(1)第一步-引入依赖
(2)第二步-开启组件扫描 -确定注解位置
(3)第三步-创建类,在类上面添加创建对象的注解
4. 基于注解方式实现属性注入
(1)常用注解:
① @AutoWired:根据属性类型进行自动装配
第一步:把Service和Dao类创建并添加注解
第二步:在Service中注入Dao对象,在Service类中添加Dao属性
第三步:在Dao属性上使用注解--set和get在注解中已经实现
② @Qualifier:根据属性名称进行注入
@Qualifier需要和@AutoWired协同使用
@Qualifier在接口有多个实现类时,可以通过名称来指定实现类
注意要在接口实现类注解中设置名称或采用默认值(首字母小写)
③ @ReSource:(javax)既可以根据类型注入,也可以根据名称注入
不是官方的,不建议使用
④ Value:注入普通类型属性
五、完全注解开发
1. 创建配置类,代替xml文件
2. 编写测试类