本节目的:通过java代码装配bean。
步骤:大致过程参见上节自动装配步骤。点我
第一步:实例化一个对象
package com.learn.spring.javacodebuild;
public class Person {
private String name;
private String age;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
第二步:进行配置
package com.learn.spring.javacodebuild;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class JavaConfigPerson {
@Bean
public Person person1(){
Person person = new Person();
person.setName("张三");
person.setAge("19");
return person;
}
}
注:这里的@Configuration 仍旧是为了表明该类是一个配置类。里面的@bean是实例化一个bean出来,person1是这个bean在Spring里面注册的名字,下面会用。
第3-5步:同样是取-用-测试三合一:
package com.learn.spring.javacodebuild;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
public class TestPerson {
public static void main(String[] args) {
@SuppressWarnings("resource")
AnnotationConfigApplicationContext ctx = (AnnotationConfigApplicationContext) new AnnotationConfigApplicationContext(JavaConfigPerson.class);
Person person = (Person) ctx.getBean("person1");
System.out.println(person.getName());
System.out.println(person.getAge());
}
}
这里取用过程跟自动装配不一致,需要进行区分:
(1)AnnotationConfigRegistry
——注解配置注册表。用于注解配置应用上下文的通用接口,拥有一个注册配置类和扫描配置类的方法。这里我们主要进行获取注册的bean。
(2)@SuppressWarnings 允许选择性地取消特定代码段(即,类或方法)中的警告
执行结果: