为什么要使用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;}@Overridepublic String toString() {return "Student{" +"name='" + name + '\'' +", age=" + age +", sex='" + sex + '\'' +'}';}
}
2、定义配置类
@Configuration
public class SpringConfig {@Beanpublic 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;}
}