Spring03–基于注解的Ioc
创建对象的注解
@Component : 可以创建任意对象 创建的对象的默认名称是类名的驼峰命名法。也可以指定对象的名称
@Component("指定名称")
@Controller : 专门用来创建控制器的对象(Servlet),这种对象可以接收用户的请求,可以返回处理结果给客户端
@Service : 专门用来创建业务逻辑层的对象,负责向下访问数据访问层,处理完毕后的结果返回给界面层
@Repository : 专门用来创建数据访问层的对象,负责数据库中的增删改查所有操作
依赖注入的注解
1.简单类型的注入(8种基本数据类型+String)
@Value : 用来给简单类型注入值
2.引用类型的注入
方式一 :
@Autowired : 使用类型注入值,从整个Bean工厂中搜索同源类型的对象进行注入
什么是同源类型:
1.被注入的类型与注入的类型是完全相同的类型
2.被注入的类型(Student中的school父)与注入的类型(子)是父子类
注意:在父子类的情况下,按照类型注入,意味着有多个可注入的对象,此时会按照名称进行二次筛选,选中与被注入的对象名称相同的对象进行注入
所以,在有父子类的情况下,直接按照名称进行注入。
3.被注入的类型(Student中的school接口)与注入的类型(实现类)是接口和实现类
方式二 :
@Autowired
@Qualifier : 使用名称注入值,从整个Bean工厂中搜索同源相同名称的对象进行注入
案例01:基于Spring注解的Ioc实现
第一步,定义实体类
package com.itheima.pojo;
@Component
//@Component后面不跟名字,按照类名的驼峰命名法给创建的对象起名
public class Student {
@Value("张三")
private String name;
@Value("24")
private int age;
//引用类型按类型注入
@Autowired
private School school;
<