文章整理来源:Spring编程常见错误50例_spring_spring编程_bean_AOP_SpringCloud_SpringWeb_测试_事务_Data-极客时间
案例7:@Value 注入
@Value 也能用于内置对象的装配
@Value("#{student}")
private Student student;
@Bean
public Student student(){
Student student = createStudent(1, "xie");
return student;
}
---------------------------------------------------------------
//注册正常字符串
@Value("我是字符串")
private String text;
//注入系统参数、环境变量或者配置文件中的值
@Value("${ip}")
private String ip
//注入其他Bean属性,其中student为bean的ID,name为其属性
@Value("#{student.name}")
private String name;
注意:避免 @Value("${xxx}") 中的 xxx 与 环境变量 或者 系统变量 冲突 。如 username ,user.name 等等。
案例8:错乱的注入集合
集合类型的注入方式有两种: 1. 收集式 ; 2. 直接式
// 1. 收集式
@Bean
public Student student1(){
return createStudent(1, "xie");
}
@Bean
public Student student2(){
return createStudent(2, "fang");
}
@RestController
public class StudentController {
private List<Student> students;
public StudentController(List<Student> students){
this.students = students;
}
}
-------------------------------------------------------------
// 2. 直接式
@RestController
@Slf4j
public class StudentController {
private List<Student> students;
public StudentController(List<Student> students){
this.students = students;
}
@RequestMapping(path = "students", method = RequestMethod.GET)
public String listStudents(){
return students.toString();
};
}
注意:两种方式别混合使用