spring基于注解的IOC配置
(一)常用注解介绍
1.对象实例化注解(IOC)
如果想要是实现对象实例化,需要在类上面加
@component
该注解的作用
在使用该注解的时候,也可以添加对应的属性:
和@Component注解作用相同的还有三个:
@Controller 在表现层使用,标明该类是表现层的类
@Service 在业务层使用,标明该类是业务层的类
@Repository 在持久层使用,标明该类是持久层的类
2.依赖注入注解( DI)
(1) Autowired 自动加载 根据属性类型查找,找到唯一一个,将类注入属性中,若查找出多个则用属性名称去查找
(2) @Quailfier
该注解不能单独使用需要与@Autowired 联合使用 ,使用该注解,@Autowired就没有根据类型查找功能了,只能根据@Quailfie指定的名称去查找。
(3)Resource
相当于上面两个注解的结合体
该注解和上面两个注解不是一个体系的,不是spring提供的,而是javax包下的注解。
(4) @Value
用于简单类型的属性注入。
(二)基于注解的IOC配置
1.修改配置文件
2.在实体类上添加注解
3.测试
结果:
证明person被创建出来并放入到容器中
4.使用DI的value注解实现注入普通参数
测试结果:
证明@Value注解可以在set方法注入参数,也可以在属性上注入参数,在属性上注入参数的时候不需要set方法。
5.测试@Autowired作用
创建一个dog类:
在spring配置文件中添加一个实体类:
修改person类,添加dog属性:
测试:
修改配置文件:
测试看结果:
6.测试@Quailfier注解作用
修改person类中的属性:
测试结果:
修改配置文件:
测试结果:
该注解的作用:在自动加载的基础上限制了加载属性的名称,必须安装设定的名称来加载,如果没有这个名称的类型,就会抛异常。
7.测试@Resource的作用
和上面的注解不是一个系统的,
配置文件中有一个,并且名字和属性名不一样:
测试结果;
修改person类:
配置文件:
结果: