为什么要使用Javaconfig?
- 如果要声明的bean对象,来自于第三方jar包(不是自定义的),无法使用@Component 及衍生注解来声明bean,因为第三方的jar一般不可写,需要使用注解@Configuration和@Bean注解来完成。
JavaConfig是:定义java类(配置类)来代替xml配置文件,在配置类中创建java对象,并把对象注入到springIoc容器中。
- 使用两个注解完成:
- @Configuration : 标注在类上面,表示定义为配置类。
- @Bean:写在配置类中的方法上,将 方法的返回值 注入到Spring IOC容器中管理
- @Bean注解的name属性:指定bean对象的id(名称),如果不指定默认为:方法名
代码示例:
1、创建Student类
public class Student {
private String name;
private Integer age;
private String sex;
public Student() {
}
public Student(String name, Integer age, String sex) {
this.name = name;
this.age = age;
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
@Override
public String toString() {
return "Student{" +
"name='" + name + '\'' +
", age=" + age +
", sex='" + sex + '\'' +
'}';
}
}
2、定义配置类
@Configuration
public class SpringConfig {
@Bean
public Student createStudent(){
Student student1 = new Student();
student1.setName("张三");
student1.setAge(26);
student1.setSex("男");
return student1;
}
@Bean(name = "lisiStudent")
public Student makeStudent(){
Student student2 = new Student();
student2.setName("李四");
student2.setAge(26);
student2.setSex("男");
return student2;
}
}