Spring的@Bean注解用于告诉方法,产生一个Bean对象,然后这个Bean对象交给Spring管理。产生这个Bean对象的方法Spring只会调用一次,随后这个Spring将会将这个Bean对象放在自己的IOC容器中。
SpringIOC 容器管理一个或者多个bean,这些bean都需要在@Configuration注解下进行创建,在一个方法上使用@Bean注解就表明这个方法需要交给Spring进行管理。
public class User {
private int id;
private String name;
private String password;
private String number;
private String birthday;
private String job;
private String gender;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {return id;}
public void setId(int id) {this.id = id; }
public String getName() {return name;}
public void setName(String name) {this.name = name;}
public String getPassword() {return password;}
public void setPassword(String password) {this.password =password;}
public String getNumber() { return number;}
public void setNumber(String number) {this.number = number;}
public String getBirthday() {return birthday;}
public void setBirthday(String birthday) {this.birthday = birthday; }
public String getJob() {return job; }
public void setJob(String job) {this.job = job; }
public String getGender() { return gender;}
public void setGender(String gender) {this.gender = gender; }
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ",gender="+gender+"," +
" job="+job+",password=" + password + "," +
"birthday="+birthday+", number=" + number + "password="+password+"]";
}
}
@Configuration
public class ConfigIOC {
// 方法名为这个bean在Spring容器的名称,也可以在@Bean后面添加("user名称")重命名
@Bean
public User user(){
return new User();
}
}
@SpringBootTest
class SpringbootApplicationTests {
@Test
void contextLoads() {
ApplicationContext applicationContext = new
AnnotationConfigApplicationContext(ConfigIOC.class);
User bean = (User) applicationContext.getBean("user");
System.out.println(bean);
}
}