1.@Component申请IOC容器管理
- @Component的作用相当于在Spring配置文件中用< bean >标签创建对象,注解该类归由IOC容器进行管理
step1:必须由Spring自动扫描包,将注有@Component注解的类归于IOC容器进行管理,需要在spring配置文件中表明扫描范围
<context:component-scan base-package="com.system.entity"></context:component-scan>
- step2:在需要IOC容器管理的类中添加@Component注解
可以在注解中给类添加“id”
@Component(value=“id”)
或 @Component(“id”) 当只有一个属性值时,value可省略不写
@Component 默认id为类名的首字符小写,其他不变,如EmpService->empService
@Component
public class Student {
private int id;
private String name;
private int age;
}
2.@Autowired自动装配
- 默认是按照byType类型进行自动装配
- 在需要自动装配的对象上面加上该注解即可
- @Value(“值”)可为每个属性初始化值
@Data
@Component
public class Dept {
@Value("10")
private Integer deptno; //部门编号 数据库int类型---- 使用int的封装类Integer
@Value("设计部")
private String dname; //部门名称
@Value("杭州")
private String loc;
}
@DataData
@Component
public class Emp {
@Value("7788")
private Integer empno; //员工编号 8个基本数据类型--》封装类
@Value("张三")
private String ename; //员工姓名
@Value("经理")
private String job; //职位
@Value("10000.00")
private double sal; //工资
@Value("800.00")
private double comm; //奖金
@Autowired//按照数据类型,自动装配
private Dept dept;
}
3.@Scope作用域 注解
- 加载在类的上方
- @Scope(“类型”) 类型取值:{singleton(单例), prototype(原型)}
@Data
@Component
@Scope("prototype")
public class Emp {
@Value("7788")
private Integer empno; //员工编号 8个基本数据类型--》封装类
@Value("张三")
private String ename; //员工姓名
@Value("经理")
private String job; //职位
@Value("10000.00")
private double sal; //工资
@Value("800.00")
private double comm; //奖金
@Autowired
@Qualifier("dept10")
private Dept dept;
}